Dựa trên @Sailesh và @DavidCulp:
(on branch development)
$ git fetch origin master
$ git merge FETCH_HEAD
(resolve any merge conflicts if there are any)
$ git checkout master
$ git merge --no-ff development (there won't be any conflicts now)
Lệnh đầu tiên sẽ đảm bảo bạn có tất cả các cam kết ngược dòng được thực hiện cho chủ từ xa, với phản hồi của sailesh sẽ không xảy ra.
Thứ hai sẽ thực hiện hợp nhất và tạo xung đột mà sau đó bạn có thể giải quyết.
Sau khi làm như vậy, cuối cùng bạn có thể kiểm tra master để chuyển sang master.
Sau đó, bạn hợp nhất nhánh phát triển lên chủ địa phương. Cờ no-ff sẽ tạo một nút cam kết trong tổng thể để toàn bộ hợp nhất có thể theo dõi được.
Sau đó, bạn có thể cam kết và đẩy hợp nhất của bạn.
Quy trình này sẽ đảm bảo có một cam kết hợp nhất từ phát triển đến thành thạo mà mọi người có thể nhìn thấy, sau đó nếu họ nhìn vào nhánh phát triển, họ có thể thấy các cam kết riêng lẻ mà bạn đã thực hiện cho nhánh đó trong quá trình phát triển.
Tùy chọn, bạn có thể sửa đổi cam kết hợp nhất của mình trước khi bạn đẩy nó, nếu bạn muốn thêm một bản tóm tắt về những gì đã được thực hiện trong nhánh phát triển.
EDIT: câu trả lời ban đầu của tôi đã gợi ý rằng git merge master
không làm gì cả, tốt hơn là nên làm git merge FETCH_HEAD
sau khi lấy nguồn gốc / chủ
git pull -u
đặt theo dõi ngược dòng cho nhánh (hoặc tất cả các nhánh nếu đẩy nhiều hơn một). Một khi nó được thiết lập theo dõi vẫn tồn tại. Không có lý do để sử dụng nó liên tục.