Git Practice – Cách Merge Conflict

git banner

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.

Leave a Reply

Your email address will not be published. Required fields are marked *