Tôi đã thiết lập một số nhánh theo dõi từ xa trong git, nhưng dường như tôi không bao giờ có thể hợp nhất chúng vào nhánh cục bộ khi tôi đã cập nhật chúng bằng 'git fetch'.
Ví dụ: giả sử tôi có nhánh từ xa được gọi là 'an-nhánh-khác'. Tôi thiết lập cục bộ làm chi nhánh theo dõi bằng cách sử dụng
git branch --track an-other-branch origin/an-other-branch
Càng xa càng tốt. Nhưng nếu nhánh đó được cập nhật (thường là do tôi di chuyển máy và kích hoạt từ máy đó) và tôi muốn cập nhật nó trên máy gốc, tôi sẽ gặp sự cố với tìm nạp / hợp nhất:
git fetch origin an-other-branch
git merge origin/an-other-branch
Bất cứ khi nào tôi làm điều này, tôi nhận được thông báo 'Đã cập nhật' và không có gì hợp nhất.
Tuy nhiên, một
git pull origin an-other-branch
luôn cập nhật nó như bạn mong đợi.
Ngoài ra, chạy git diff
git diff origin/an-other-branch
cho thấy rằng có sự khác biệt, vì vậy tôi nghĩ rằng tôi đã sai cú pháp của mình.
Tôi đang làm gì sai?
EDIT [2010-04-09]: Tôi đã kiểm tra một vài lần và chắc chắn tôi không ở trên một chi nhánh khác. Liệu 'git fetch' của tôi được theo sau bởi một 'git merge' (như được hiển thị ở trên) có thực hiện điều tương tự như một git pull không? Tôi sẽ nhận được một số quy trình làm việc hiển thị kết quả của trạng thái git, v.v.
git fetch origin an-other-branch
lưu trữ mẹo đã tìm nạp vàoFETCH_HEAD
, nhưng không lưu trữorigin/an-other-branch
(tức là 'chi nhánh theo dõi từ xa' thông thường). Vì vậy, người ta có thể làmgit fetch origin an-other-branch && git merge FETCH_HEAD
, nhưng làm như @Gareth nói thì tốt hơn (hoặc chỉ sử dụng git pull ).