Cập nhật nhánh lỗi thời so với nhánh chính trong repo Git


123

Tôi có một kho lưu trữ Git có nhánh (cục bộ và từ xa) đã trở nên lỗi thời. Tôi muốn đưa chi nhánh này cập nhật với chi nhánh chủ, nhưng tôi không biết làm thế nào để làm điều này. Cũng có thể sẽ có nhiều xung đột hợp nhất.

Làm cách nào để chuyển hoặc cập nhật nhánh lỗi thời này về trạng thái giống như nhánh chính?


1
nếu bạn đến đây để tìm hiểu cách cập nhật nhánh lỗi thời so với chính trong repo Git nếu bạn không thực hiện bất kỳ thay đổi nào trong nhánh cục bộ thì bạn chỉ cần thực hiện "git pull"
tồi tệ

Câu trả lời:


152

Cập nhật nhánh chính mà bạn cần làm bất kể.

Sau đó, một trong số:

  1. Căn cứ lại nhánh cũ so với nhánh chính. Giải quyết xung đột hợp nhất trong quá trình rebase và kết quả sẽ là một nhánh cập nhật sẽ hợp nhất sạch sẽ so với chính.

  2. Hợp nhất chi nhánh của bạn thành chính và giải quyết xung đột hợp nhất.

  3. Hợp nhất cái chính vào chi nhánh của bạn và giải quyết xung đột hợp nhất. Sau đó, việc hợp nhất từ ​​chi nhánh của bạn thành tổng thể phải sạch.

Không cái nào tốt hơn cái kia, chúng chỉ có những kiểu đánh đổi khác nhau.

Theo ý kiến ​​của tôi, tôi sẽ sử dụng cách tiếp cận rebase, mang lại kết quả tổng thể rõ ràng hơn cho những người đọc sau này, nhưng đó không phải là điều gì ngoài sở thích cá nhân.

Để căn cứ lại và giữ lại chi nhánh, bạn sẽ:

git checkout <branch> && git rebase <target>

Trong trường hợp của bạn, hãy kiểm tra chi nhánh cũ, sau đó

git rebase master 

để xây dựng lại nó chống lại chủ nhân.


1
git rebase
@Andrew

1
git checkout $branch && git rebase $target- trong trường hợp của bạn, hãy kiểm tra chi nhánh cũ, sau đó git rebase masterđể xây dựng lại nó so với chủ nhân.
Daniel Pittman

3
Repo của bạn có công khai không? Bạn có thể rebase nếu nó ở chế độ công khai không?
event_jr

4
Lời khuyên hữu ích khi sử dụng rebase trong nhánh từ xa: chỉ thực hiện rebase nhánh từ xa này chống lại nhánh chủ khi bất kỳ ai không đẩy commit trên nhánh từ xa này.
Dherik

Sau khi rebase xong, bạn cần đẩy các thay đổi bằng cách sử dụng -ftùy chọn. Khi bạn đang viết lại lịch sử, cần phải thúc đẩy mạnh mẽ.
Opster Elasticsearch Ninja,
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.