Nếu bạn không nhớ không tạo ra một chi nhánh gọi temp
, bạn chỉ có thể làm như sau tất cả trên master
:
git commit -a -m 'more work done'
git fetch origin
git rebase origin/master
... hoặc tương đương:
git commit -a -m 'more work done'
git pull --rebase origin master
Nếu bạn làm muốn giữ chi nhánh temp
, tuy nhiên, bạn vẫn có thể thực hiện việc này ngắn hơn một chút bằng cách không kiểm tra master
chỉ để thực hiện pull
- bạn chỉ cần fetch
và sau đó rebase chi nhánh của mình lên origin/master
:
# work work work...
$ git checkout -b temp
$ git commit -a -m 'more work done'
$ git fetch origin
# It looks like origin/master was updated, so:
$ git rebase origin/master
# Then when you finally want to merge:
$ git checkout master
$ git merge temp
$ git push origin master
$ git branch -d temp
sehe's answer nhắc nhở tôi rằng bạn có thể thay thế:
$ git fetch origin
$ git rebase origin/master
... với:
$ git pull --rebase origin master
... đó là gần tương đương. Sự khác biệt là khi bạn chạy git fetch origin
, tất cả các chi nhánh theo dõi từ xa của bạn cho origin
sẽ được cập nhật, trong khi khi bạn kéo chi nhánh cụ thể từ origin
, không ai trong số đó - đó chỉ là tạm thời ref FETCH_HEAD
được cập nhật. Cá nhân tôi thích chạy thêm một lệnh (git fetch origin
), và nhìn thấy tất cả các nhánh từ xa đã thay đổi trong đầu ra.
Nguồn
2011-09-26 13:31:28
Tuyệt vời! Tôi không biết về tùy chọn '--rebase', dường như nó phù hợp với quy trình làm việc của tôi một cách hoàn hảo. –
Làm việc tuyệt vời cho tôi! Nhân tiện, làm thế nào chúng ta có thể bỏ qua những thay đổi không được tổ chức/không cam kết? –