Git Merge là gì? Git Merge hay còn được biết đến là lệnh phù hợp nhất, đây chắc chắn là một lệnh mà không một lập trình viên nào là không biết đến. Qua nội dung sau đây sẽ bổ sung thêm nhiều hông nội dung đến độc giả, cùng xem xét thêm nhé.
Git Merge là gì?

Git Merge là một lệnh dùng để hợp nhất các chi nhánh độc lập thành một nhánh độc nhất trong Git.
Khi sử dụng lệnh hợp nhất trong Git, chỉ có nhánh hiện tại được cập nhật để phản ánh sự phù hợp nhất, còn nhánh đích không hề bị ảnh hưởng. Điều này có nghĩa rằng, Git Merge thường được sử dụng cùng với git checkout để chọn nhánh hiện tại và git branch để xóa nhánh nguồn đã lỗi thời.
Cách thức hoạt động của Git Merge
Tác dụng chính của lệnh Git Merge là hợp nhất hai nhánh. Nó cũng được sử dụng để hợp nhất chuỗi commit (cam kết) thành một lịch sử độc nhất.
Để hiểu sâu cách thức công việc của lệnh Git Merge, chúng ta sẽ lấy một mẫu hợp nhất nhánh làm chẳng hạn như. Trong hình ảnh minh họa sau, Git Merge sẽ thu thập hai nhánh và tìm thấy một commit cơ sở chung giữa chúng. Khi Git tìm thấy một commit cơ sở chung, nó sẽ tạo một cam kết phù hợp nhất (merge commit) mới và hợp nhất các thay đổi theo thứ tự của mỗi bảo đảm phù hợp nhất. Ở đây, con người có 2 nhánh: master branch và stage branch. Bây giờ, con người sẽ phù hợp nhất stage branch vào master branch.
Các chắc chắn hợp nhất là duy nhất vì chúng có hai bảo đảm chính. Git tự động hợp nhất các lịch sử riêng biệt khi một bảo đảm phù hợp nhất mới được tạo. Nó sẽ không kết hợp dữ liệu được điều chỉnh trong cả hai lịch sử. Tình huống này được gọi là “version control conflict” (xung đột làm chủ phiên bản). Khi xảy ra xung đột, Git sẽ cần sự can thiệp của người dùng để tiếp tục.
Công thức phù hợp nhất bằng lệnh Git Merge

Việc hợp nhất trong Git sẽ xảy ra theo công thức sau:
- Thực thi git status để cam kết nó đang trỏ HEAD đến đúng nhánh nhận phù hợp nhất. Chạy git checkout để chuyển sang nhánh nhận.
- Tìm nạp các remote commit tiên tiến bằng lệnh git fetch. Cam kết chi nhánh nhận và chi nhánh phù hợp nhất được cập nhật những điều chỉnh từ xa tiên tiến.
- Kết thúc các bước tìm nạp, dùng lệnh git pull để cập nhật nhánh chủ đạo.
- Cuối cùng, hành động lệnh git merge , trong đó branch name là tên tên của nhánh có thể được ghép vào nhánh nhận.
Git Merge là gì? Phù hợp nhất bằng lệnh Git Merge trong Git có thể được làm theo hai hình thức dưới đây:
Xem thêm Lập trình viên là gì? Có nên theo nghề lập trình viên
Fast Forward Merge
Đây chính là một dạng phù hợp nhất “tua nhanh”, thường xuất hiện khi có một đường dẫn tuyến tính từ đầu nhánh hiện tại đến nhánh đích. Với Fast Forward Merge, Git sẽ di chuyển đầu nhánh hiện tại lên đầu nhánh đích. Phía dưới là một ví dụ về hợp nhất tua nhanh:
Tuy nhiên, chúng ta chẳng thể dùng Fast Forward Merge khi các nhánh đã phân kỳ. Trong hoàn cảnh này, Git sử dụng 3-way merge (hợp nhất 3 chiều) như một giải pháp thay thế.
3-way merge
Khi không có đường gây ra nhánh đích, Git không có lựa chọn nào khác ngoài việc kết hợp chúng thông qua hợp nhất 3 chiều. Việc phù hợp nhất này dùng thêm một lệnh Git Commit để buộc hai nhánh lại với nhau.
Cách giải quyết cãi vả phù hợp nhất
Khi bạn muốn phù hợp nhất hai nhánh và phần giống nhau của cùng một file bị điều chỉnh, cãi vả hợp nhất xuất hiện. Nguyên nhân là vì Git không tìm ra phiên bản nào sẽ sử dụng. Khi điều này xuất hiện, nó sẽ dừng trước khi chắc chắn phù hợp nhất để giải quyết xung đột đó.
Xung đột phù hợp nhất chỉ xuất hiện trong hoàn cảnh hợp nhất 3 chiều. Thường thường, Git sử dụng công thức edit/stage/commit để giải quyết xung đột phù hợp nhất. Việc chạy lệnh git status sẽ hiển thị các tệp cần được giải quyết.
Trong hoàn cảnh có xung đột

Git Merge là gì? Git sẽ thay đổi thông tin của các tệp bị tác động bằng các chỉ báo trực quan đánh dấu cả hai mặt của thông tin cãi vả. Các điểm đánh dấu trực quan này là:
- <<<<<<<- Đánh dấu cãi vả , cãi vả tiếp tục sau dòng này.
- =======- Phân chia những thay đổi của bạn với những điều chỉnh trong nhánh khác.
- >>>>>>>- kết thúc các dòng tranh chấp.
Một khi tìm thấy phần cãi vả, con người sẽ chạy lệnh git add trên các tệp bị xung đột. Thao tác này nhằm thông cáo cho cho Git biết các xung đột đã được giải quyết. Cuối cùng, thực thi lệnh git commit để tạo đảm bảo phù hợp nhất.
Qua bài viết trên của Coder.com.vn đã cung cấp các thông tin về Git Merge là gì? Những kiến thức cơ bản về Git Merge. Hy vọng những thông tin trên của bài viết sẽ hữu ích với các bạn đọc, cùng tham khảo nhé.
Mỹ Phượng – Tổng hợp & chỉnh sửa
Tham khảo ( topdev.vn, freetuts.net, … )
Bình luận về chủ đề post