Sử dụng Git – Lệnh merge branch

Git

Merge branch tức là bạn gộp hai branch lại với nhau, thao tác này thường dùng để merge branch khác vào branch master trước khi push lên remote repository, hoặc merge hai branch thành một để giải quyết chung một task.

1. Git merge branch

Để merge một branch bất kì vào branch hiện tại thì bạn sử dụng cú pháp sau:

Giả sử bạn đang ở branch master, bây giờ bạn muốn merge branch task1 vào branch master thì làm như sau.

Giả sử bạn đang ở branch task1, bạn muốn merge branch task2 vào branch master thì làm như sau.

2. Thực hành merge branch

Bạn hãy tạo một file tên là task1.txt tại branch task1 với nội dung như sau:

Tiêp theo bạn quay lại branch master bằng lệnh checkout.

Lúc này bạn thấy file task1.txt biên mất, bạn hãy chạy lệnh merge như sau.

Lập tức bạn sẽ thấy fie task1.txt đã xuất hiện, lý do là tất cả dữ liệu thay đổi ở branch task1 đã được trộn chung vào branch master.

3. Xử lý xung đột (conflict) khi merge

Giả sử bạn làm hai task trên cả hai branch task 1 và task2 và cả hai đều cùng sửa một file, lúc này khi merge task1 vào task2 sẽ bị xung đột (conflict), vì vậy bạn sẽ phải thực hiện sửa xung đột đó thì thao tác merge mới hoàn thành 100%.

Bước 1: Tại branch master bạn hãy tạo một file demo.txt, sau đó tạo thêm 2 branch branch1 và branch2.

Tạo 2 branch

Bước 2: Chuyển sang làm việc tại branch1, sửa nội dung file demo.txt thành “Xin chào, đây là demo branch1” và thực hiện commit.

Bước 3: Chuyển sang làm việc tại branch2, sửa nội dung file demo.txt thành “Xin chào, đây là demo branch2” và thực hiện commit.

Như vậy cả 2 branch trên ta đều sửa chung một file demo. Bây giờ ta sẽ merge branch1 vào branch2 nhé.

Như vậy nó đã báo là bị xung đột file demo.txt, tức là conflict file demo.txt.

Bây giờ ban mở file demo.txt lên thì sẽ thấy nội dung của nó như sau:

Nội dung file demo.txt

Đoạn bị xung đột được bắt đầu bằng <<<<<<< HEAD và kết thúc tại >>>>>>> branch1, được ngăn cách bởi đường =======. Trong đó đoạn trên là của branch hiện tại (branch2) và đoạn dưới là của branch cần merge (branch1).

Nhiệm vụ bây giờ của bạn là xem xét nội dung bị conflict đó xem cần sửa chỗ nào, lấy đoạn nào, sau đó xóa đi những ký hiệu trên. Giả sử mình muốn lấy cả 2 thì lúc này mình sẽ sửa file demo.txt thành:

Sửa file demo.txt

Ok, bây giờ ta cần commit để hoàn thành thao tác merge.

Như vậy là ta đã xử lý confick thành công. Xem hình để hiểu rõ hơn.

4. Lời kết

Như vậy là mình đã hướng dẫn các bạn xong cách merge 2 branch lại với nhau, đồng thời mình cũng hướng dẫn cách xử lý khi bị xung đột code. Khi đi làm thực tế nếu dự án có nhiều người làm thì bạn sẽ thực hiện thao tác này rất nhiều vì các thành viên trong nhóm có thể sửa một file, lúc này bạn cần phải xem kỹ code để tránh xử lý conflict không phù hợp.

Source

Share: