2012-01-17 37 views
11

Tôi đang làm việc trên một dự án và tôi đã tạo một kho lưu trữ với chi nhánh master. Một người đang làm việc trên nó đã thêm một chi nhánh có tên là new-branch - những thay đổi mã của họ nằm trong nhánh này.Chỉ có nhánh chính mới hiển thị sau khi nhân bản một mã Git repo

Tuy nhiên, khi tôi clone kho:

$ git clone [email protected]:me/my-repo.git 

tôi có thể sao chép nó thành công, nhưng nó chỉ hiển thị các chi nhánh master. Tôi không biết làm thế nào tôi có thể xem/nhận được new-branch.

Làm cách nào để kéo chi nhánh này vào kho lưu trữ của tôi?

+0

Chỉ dành cho bản ghi - 'pull! = Clone'. Trong 'git', đây là hai khái niệm rất khác nhau. – twalberg

Trả lời

25

Khi bạn sao chép một kho lưu trữ, tất cả các nhánh từ xa được tạo thành "các nhánh theo dõi từ xa" trong kho lưu trữ của bạn. Đây là những không được hiển thị theo mặc định, nhưng bạn có thể thấy những việc này với:

git branch -a 

Nếu bạn làm một git checkout new-branch, git sẽ tìm ra chi nhánh theo dõi từ xa cùng tên, tự động tạo ra một chi nhánh địa phương mới so với cùng cam kết và chuyển sang nhánh địa phương mới.

Để làm việc trong tương lai, lệnh git fetch sẽ cập nhật tất cả các nhánh theo dõi từ xa với cam kết mới nhất từ ​​xa.

+0

Didnt biết rằng làm việc - Tôi nghĩ bạn cần các -b trên thanh toán để tạo ra một chi nhánh mới –

+0

@Adrian Cornish: hành vi DWIM này đã có mặt kể từ git 1.6.6, được giới thiệu trong [70c9ac2f] (https://github.com/git/git/commit/70c9ac2f1999b7e0c17a864235537cffe29dfea4) –

+0

Điều gì sẽ xảy ra nếu tôi bị ngắt kết nối? "các nhánh theo dõi từ xa" có vẻ như chúng không có mặt trong repo nhân bản. Sẽ git checkout làm việc nếu tôi vừa tìm thấy nó thông qua git branch -a trong trạng thái ngắt kết nối? Liệu git branch -a có liệt kê chi nhánh trong trạng thái đó không? – timmkrause

Các vấn đề liên quan