2010-10-22 18 views
47

Tôi có một kho lưu trữ trên Github. Nó chứa master và một nhánh.Sau khi sao chép git, tôi không thấy chi nhánh của mình

Khi tôi sao chép, tôi chỉ nhận được bản gốc và không thấy chi nhánh của tôi.
Tại sao lại như vậy? Làm thế nào tôi có thể thấy tất cả các chi nhánh trong kho lưu trữ?

Trả lời

70

Theo mặc định, git clone chỉ tạo một chi nhánh: hiện đã được kiểm tra, thường là chính. Tuy nhiên, nó tạo ra các nhánh theo dõi từ xa cho tất cả các nhánh khác trong điều khiển từ xa. Hãy xem chúng như là các bản sao cục bộ của các nhánh từ xa, có thể được cập nhật bằng cách tìm nạp. Chúng không phải là các chi nhánh địa phương thực sự, vì chúng chỉ được dùng làm con trỏ tới các nhánh của các nhánh xa, không phải để bạn làm việc.

Nếu bạn chạy git branch -a bạn sẽ thấy tất cả các chi nhánh, cục bộ và từ xa. Nếu bạn chỉ muốn xem những từ xa, hãy sử dụng git branch -r. Nếu bạn muốn hiển thị lịch sử trực quan, hãy thử gitk --all (hoặc gitk --remotes).

Để tạo một chi nhánh địa phương để làm việc trên, sử dụng

git branch <branch-name> origin/<branch-name> 

Điều đó sẽ tạo ra một chi nhánh địa phương mới sử dụng chi nhánh điều khiển từ xa như là điểm khởi đầu.

+5

cú pháp ngắn hơn được hỗ trợ là git branch -t origin/

+1

@adymitruk: Không chắc chắn khi nào t được giới thiệu, nhưng nó không có trong Git 1.6.3.1 và trước đó. Nếu -t không có ở đó, mọi người có thể sử dụng --track thay thế. – Trott

12

Sử dụng:

git branch -r 

này sẽ cho bạn thấy tất cả các chi nhánh từ xa. Sau đó, bạn có thể thực hiện:

git branch -t my_local_branch origin/remote_branch 
git checkout my_local_branch 

Sau đó thực hiện công việc của bạn và sau đó chuyển đến nhánh từ xa.

11

Bạn có thể trực tiếp thực hiện:

git checkout <original-remote-branch-name> 

này sẽ tự động tạo ra một chi nhánh địa phương theo dõi các chi nhánh ở xa có cùng tên. Thực hiện thao tác này sau khi nhân bản, nếu bạn muốn làm việc trên một nhánh cụ thể không phải là chủ.

Lưu ý: Khi bạn sao chép tên từ xa theo mặc định 'origin' khác với tên từ xa được sử dụng trong các máy khác mà bạn đang phát triển. Vì vậy, ban đầu bạn có thể đặt tên từ xa của bạn trước khi nhân bản hoặc đẩy đến nguồn gốc từ trước đến giờ.

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