Ad Code

Responsive Advertisement

Giải quyết xung đột bằng merge [GIT]

Giải quyết xung đột bằng merge [GIT]
Giả sử tình huống tích hợp thay đổi tại branch issue2 và thay đổi tại branch issue3 vào master.
Trước tiên, sau khi đã checkout trên branch master, thực hiện merge branch issue2.
$ git checkout master
Switched to branch 'master'
$ git merge issue2
Updating b2b23c4..8f7aa27
Fast-forward
 myfile.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Như vậy merge fast-forward (chuyển tiếp nhanh) sẽ được thực hiện.

Tiếp theo, thực hiện merge branch issue3.
$ git merge issue3
Auto-merging myfile.txt
CONFLICT (content): Merge conflict in myfile.txt
Automatic merge failed; fix conflicts and then commit the result.
Tự động merge đã thất bại. Có vẻ như đã phát sinh xung đột do đã thay đổi cùng một dòng với nội dung khác. Nội dung của myfile.txt lúc này thì sẽ giống như bên dưới.

Đến cả con khỉ cũng hiểu được lệnh Git
add: Đăng ký thay đổi trong index
<<<<<<< HEAD
commit: Lưu lại trạng thái của index
=======
pull: Lấy nội dung của remote repository
>>>>>>> issue3
 
Ở những chổ có xung đột thì Git đang chèn vào phần khác biệt. Hãy sửa như bên dưới.
Đến cả con khỉ cũng hiểu được lệnh Git
add: Đăng ký thay đổi trong index
commit: Lưu lại trạng thái của index
pull: Lấy nội dung của remote repository
Vì đã chỉnh sửa nơi xung đột nên hãy commit lại.
$ git add myfile.txt
$ git commit -m "Thực hiện merge branch issue3"
# On branch master
nothing to commit (working directory clean)
Lịch sử sẽ giống thế này. Vì đã chỉnh sửa nơi xung đột trong merge lần này, nên merge commit sẽ ghi lại thay đổi đó sẽ được tạo mới. Và, đầu của master sẽ di chuyển đến đó. Loại merge thế này là không phải fast-forward mà được gọi là non fast-forward merge.