Git hợp nhất hai chi nhánh địa phương


145

Tôi có nhánh Master, nhánh A và nhánh B. Bây giờ tôi đang làm việc ở nhánh A và tôi cần hợp nhất nhánh A với nhánh B và tiến hành công việc của mình ở nhánh A. Tất cả các tệp được ghi vào nhánh A và B.

Cách nhanh nhất để thực hiện nó là gì?

Câu trả lời:


246

Nếu tôi hiểu câu hỏi của bạn, bạn muốn hợp nhất branchBvào branchA. Để làm như vậy, đầu tiên kiểm tra branchAnhư dưới đây,

git checkout branchA

Sau đó thực hiện lệnh dưới đây để hợp nhất branchBvào branchA:

git merge branchB

3
Chúng ta cần đảm bảo rằng các nhánh A và B tồn tại trên kho lưu trữ cục bộ. Chỉ sau đó chúng ta có thể thực hiện hợp nhất.
Santhosh

8
Câu hỏi rất rõ ràng:I have branch Master, branch A and branch B.
LeeGee

166

Đây là một hình ảnh rõ ràng:

Giả sử chúng ta có nhánh A và nhánh B

Chúng tôi muốn hợp nhất nhánh B vào nhánh A

on branch-B -> A: switch to branch-A

on branch-A: git merge branch-B

32
điều này không rõ ràng hơn chút nào, chỉ cần đăng thông tin đầu vào là dễ hiểu hơn nhiều
lopu

9
Câu trả lời này không đủ rõ ràng .... "cập nhật nhánh B" nghĩa là gì ... có nhiều cách để làm điều đó, cách nào? ... Thay vì chuyển đổi kiểm tra git chi nhánh-A thì dễ hiểu hơn
Erdinç orbacı 22/03/18

2

Câu trả lời từ Abiraman là hoàn toàn chính xác. Tuy nhiên, đối với người mới sử dụng git, họ có thể quên kéo kho lưu trữ. Bất cứ khi nào bạn muốn thực hiện hợp nhất từ ​​nhánhB thành nhánhA. Kiểm tra đầu tiên và lấy từ chi nhánhB (Đảm bảo rằng, chi nhánh của bạn được cập nhật với chi nhánh từ xa)

git checkout branchB
git pull

Bây giờ chi nhánh địa phươngB của bạn được cập nhật với chi nhánh từ xaB Bây giờ bạn có thể thanh toán đến chi nhánhA

git checkout branchA

Bây giờ bạn đang ở trong nhánhA, sau đó bạn có thể hợp nhất với nhánhB bằng cách sử dụng lệnh sau

git merge branchB

0

Nếu bạn hoặc nhà phát triển khác sẽ không làm việc trên nhánhB hơn nữa, tôi nghĩ tốt hơn là nên giữ cam kết để thực hiện hoàn nguyên mà không phải đau đầu. Vì thế ;

git checkout branchA
git pull --rebase branchB

Điều quan trọng là BranchB không nên được sử dụng nữa.

Để biết thêm; https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


1
Trong tiêu đề của nó, câu hỏi liên quan đến kho lưu trữ cục bộ - mà pullsẽ không hoạt động.
LeeGee

2
Bạn nói đúng, tôi chỉ nghĩ rằng việc bổ sung kiến ​​thức này sẽ là một điểm cộng bởi vì có lẽ chi nhánh địa phương sẽ bị đẩy vào cuối. Nhưng tôi đã bỏ lỡ điểm bạn chỉ ra, tốt hơn tôi nên thêm điều này như một bình luận không phải là một câu trả lời. Cảm ơn đã cảnh báo tôi.
Erdinç orbacı

0

trên nhánhB làm gì $git checkout branchAđể chuyển sang nhánh A

trên nhánhA làm $git merge branchB

Đó là tất cả những gì bạn cần.

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.