2011-09-07 20 views
6

Tôi đã xem xét một vài câu hỏi ở đây, đặc biệt là one nhưng tôi vẫn còn bối rối.Ai đó có thể giải thích thêm về việc kiểm tra các chi nhánh từ xa với git không?

Tôi có một máy chủ được thiết lập với liên kết chậm mà tôi truy cập thông qua đường hầm SSH. Trên đó, tôi đã nhân bản một kho lưu trữ rỗng của nhân Linux (điểm gốc tới kernel.org). Sau đó tôi nhân bản kho lưu trữ trống trên máy chủ của mình, kiểm tra thẻ, tạo một nhánh ('test' say), thực hiện các thay đổi trên nhánh đó và cuối cùng đã đẩy các thay đổi vào repo trần trên máy chủ của tôi.

Bây giờ tôi đang ở trang web của khách hàng và muốn thanh toán chi nhánh. Để tránh đường lên chậm của tôi tại trang web của khách hàng, tôi đã sao chép Linux repo từ kernel.org và thay đổi 'origin' để trỏ đến máy chủ của tôi thông qua đường hầm SSH. tôi có thể thấy các chi nhánh, nhưng không thể kiểm tra nó ra:

~/linux-3.0.y$ git version 
git version 1.7.0.4 
~/linux-3.0.y$ 
~/linux-3.0.y$ git status 
# On branch master 
nothing to commit (working directory clean) 
~/linux-3.0.y$ 
~/linux-3-0.y$ git remote show origin 
[email protected]'s password: 
* remote origin 
    Fetch URL: git+ssh://[email protected]:48884/home/git-user/linux-3.0.y 
    Push URL: git+ssh://[email protected]:48884/home/git-user/linux-3.0.y 
    HEAD branch: master 
    Remote branches: 
    test new (next fetch will store in remotes/origin) 
    master new (next fetch will store in remotes/origin) 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 
~/linux-3.0.y$ 
~/linux-3.0.y$ git checkout -b test origin/test 
fatal: git checkout: updating paths is incompatible with switching branches. 
Did you intend to checkout 'origin/test' which can not be resolved as commit? 

Những gì tôi thực sự có ý định là để có thể làm việc trên các chi nhánh tạo ở nhà tại khu vực khách hàng của tôi. Tôi nên làm gì (đã làm) để thanh toán chi nhánh này?

+1

Chỉ cần kiểm tra, bạn có chạy 'git fetch origin' chưa? (Nếu không, 'origin/test' sẽ không được tạo ra.) Nó có thể giúp ích nếu bạn cũng bao gồm đầu ra của' git branch -a' trong câu hỏi của bạn, cho thấy cả nhánh địa phương và nhánh theo dõi từ xa của bạn . –

Trả lời

11

Đầu tiên, có vẻ như bạn đã không tìm nạp chi nhánh.

Sử dụng git branch -a thay vì git remote show origin.

Nếu nhánh thử bị thiếu, sau đó thực hiện git fetch --all.

Bây giờ nếu bạn muốn thanh toán chi nhánh từ xa làm chi nhánh địa phương có cùng tên, chỉ cần thực hiện git checkout BRANCH_NAME, nó sẽ tự động được thiết lập để theo dõi nguồn gốc.

+1

rõ ràng hơn, không có DWIMery của Git: 'git checkout -b BRANCH --track origin/BRANCH' – knittl

+0

Điều đó có ý nghĩa với tôi ... Tôi đang cấp nguồn qua một số nhầm lẫn khác ngay bây giờ. – Jamie

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