Conflict khi Merge code là một điều cần phải tránh, tuy nhiên đôi lúc ta vẫn để điều tồi tệ đó xảy ra. Với những ai chưa làm việc quen với Git thì cách để Merge Conflict đơn giản nhất là mở file bị Conflict ra để sửa, sau đó thì Commit lại. Tuy nhiên tôi có một cách làm nhanh hơn và đỡ sai xót hơn cách thủ công phía trên.
Git cung cấp cho chúng ta lệnh Checkout, đây là một lệnh thực sự hữu ích, nó là một con trỏ bộ nhớ của Git, nó giúp chúng ta truy cập và sử dụng được những vùng mà Git quản lí. Ta cũng có thể sử dụng lệnh checkout để Merge Conflict như sau:
Tại Repository chúng ta chạy lệnh
git status
Để biết hiện tại đang xảy ra Conflict ở File nào.
Những file đang bị Conflict sẽ có trạng thái là
Both Modified
Sau khi đã xác định được File nào đang xảy ra Conflict ta tiến hành xử lí Conflict ở File đó.
Ta sử dụng lệnh Checkout
git checkout --our file1.xxx file2.xxx
Để giữ lại những thay đổi của mình
Hoặc sử dụng
git checkout --theirs file1.xxx file2.xxx
Để sử dụng các thay đổi ở Branch vừa được Merge hoặc từ Remote Branch vừa Pull về.
Sau khi đã giữ lại các thay đổi mong muốn, ta tiến hành Commit để đánh dấu việc Merge Conflict
git add file1.xxx file2.xxx git commit -m "Merge Conflict"
Như vậy ta đã hoàn thành việc Merge code bị Conflict tại Local. Để đưa các thay đổi này lên Remote Repository ta tiến hành Push code như bình thường.
Trong trường hợp bạn vừa muốn giữ lại code của bạn vừa tạo trên Local vừa muốn giữ cả Code vừa Pull từ Remote về thì sẽ phải mở file đó ra để sửa trực tiếp. Nhưng tốt nhất nên tránh điều đó xảy ra.