2012-08-02 39 views
14

tôi chạy:Git thanh toán một chi nhánh

git checkout mygithub/master 

nhưng đối với một số lý do, chạy 'status git' cho thấy "không hiện trên bất kỳ chi nhánh". Đang chạy:

git checkout master 

và sau đó git status, nói rằng tôi hiện đang làm chủ chi nhánh. Bây giờ tôi muốn chuyển sang một chi nhánh khác. Chạy git checkout anotherbranch hoạt động, nhưng git status nói rằng tôi vẫn đang ở nhánh 'chi nhánh'. Tôi đang làm gì sai?

+0

'git checkout anotherbranch' có tạo ra bất kỳ đầu ra nào không? – poke

+0

Nó cho thấy không có đầu ra, không có lỗi. – NoBugs

Trả lời

18

mygithub/master là một nhánh từ xa. Để tạo một nhánh địa phương dựa trên nhánh từ xa đó, bạn phải sử dụng git checkout -b mymaster mygithub/master. Git cố gắng thực hiện điều này dễ dàng cho bạn: nếu bạn viết git checkout branchname và tên chi nhánh chỉ tồn tại ở xa, nhưng không phải cục bộ, Git sẽ tự động thiết lập chi nhánh địa phương với <remote>/branchname làm cha mẹ của nó.

+0

Vậy tại sao git checkout branchname không bao giờ chuyển sang điều này? Chi nhánh tồn tại trên github, tôi chỉ muốn kết hợp các thay đổi chính với nó. – NoBugs

+0

@NoBugs: 'git checkout -b remotemaster mygithub/master' sẽ tạo nhánh mới tắt' mygithub/master' và chuyển sang nó. – knittl

+0

'git checkout -b otherbranch mygithub/otherbranch' hoạt động, nhưng' git merge mygithub/master' muốn 'chuyển tiếp nhanh' và xóa các tệp từ người không phải chủ, mà tôi muốn giữ lại. – NoBugs

9

Nếu bạn muốn chuyển sang một chi nhánh khác sau đó chạy lệnh này:

git checkout branch name 

Nếu bạn muốn xóa một chi nhánh sau đó chạy lệnh này:

git branch -D branch name 

Nếu bạn muốn tạo ra một mới nhánh sau đó chạy lệnh này:

git checkout -b branch 
Các vấn đề liên quan