Git: Hợp nhất chi nhánh vào Master

Trả lời nhanh – Hợp nhất chi nhánh vào Master

Nếu bạn đang tìm kiếm câu trả lời nhanh, hãy hợp nhất một nhánh vào master chi nhánh - bạn checkout mastermerge some_branch:

$ git checkout new-branch
# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

Bạn luôn luôn checkout chi nhánh bạn đang sáp nhập vào và merge một nhánh đã có những thay đổi.

Hiểu việc hợp nhất chi nhánh với Git

Tuy nhiên, nếu bạn mới làm quen với Git, bạn nên dành vài phút để hiểu các lệnh này và cách chúng hoạt động. Nó đơn giản một cách đáng ngạc nhiên và sẽ đưa bạn đi một chặng đường dài.

Lưu ý: Vào năm 2020, Git (cùng với các nền tảng lưu trữ kho lưu trữ lớn như GitHub, GitLab, v.v.) đã áp dụng một thay đổi về thuật ngữ chính thức và tên nhánh mặc định được đổi thành main, do ý nghĩa tiêu cực của từ này master có thể kéo theo. Nhiều dự án vẫn chưa di chuyển hoặc đổi tên các chi nhánh chính của chúng, vì vậy trong tương lai gần – các điều khoản mastermain có thể sẽ được sử dụng thay thế cho nhau.

Một trong những tính năng mạnh mẽ nhất của Git là khả năng dễ dàng tạo và hợp nhất các nhánh cũng như các thay đổi đối với cơ sở mã.

Bản chất phân tán của Git khuyến khích người dùng tạo các nhánh mới thường xuyên và hợp nhất chúng thường xuyên như một phần của quá trình phát triển – và một số quy trình công việc Git nhất định khai thác rộng rãi điều này.

Điều này về cơ bản cải thiện quy trình phát triển cho hầu hết các dự án bằng cách khuyến khích các cam kết nhỏ hơn, tập trung hơn, chi tiết hơn, chịu sự đánh giá nghiêm ngặt của đồng nghiệp.

Trong di sản Hệ thống kiểm soát phiên bản (như CVS), khó khăn trong việc hợp nhất đã hạn chế nó đối với người dùng nâng cao. Các hệ thống kiểm soát phiên bản hiện đại nhưng tập trung khác như Sự lật đổ yêu cầu phải thực hiện các cam kết đối với kho lưu trữ trung tâm, do đó, quy trình làm việc nhanh nhẹn với việc phân nhánh và hợp nhất cục bộ là không điển hình.

Quy trình phân nhánh thường được sử dụng trong Git là tạo một nhánh mã mới cho mỗi tính năng mới, sửa lỗi hoặc cải tiến.

Chúng được gọi là Các nhánh đặc trưng.

Mỗi nhánh phân chia các cam kết liên quan đến một tính năng cụ thể. Khi tính năng mới hoàn tất - tức là một tập hợp các thay đổi đã được thực hiện trên nhánh tính năng - nó sẵn sàng được hợp nhất trở lại nhánh chính (hoặc nhánh dòng mã chính khác tùy thuộc vào quy trình làm việc đang sử dụng).

Lưu ý: Phân nhánh tính năng không phải là có thể bạn có thể thực hiện quy trình phân nhánh, nhưng đó là quy trình được áp dụng rộng rãi và được kích hoạt nhờ tính đơn giản của các chức năng hợp nhất của Git.

Hợp nhất chi nhánh thành chi nhánh khác bằng Git

Sản phẩm git branch lệnh được sử dụng để liệt kê tất cả các nhánh hiện có trong kho lưu trữ. Dấu hoa thị sẽ xuất hiện bên cạnh nhánh hiện đang hoạt động:

$ git branch
* master

Để tạo một nhánh mới, chúng ta có thể sử dụng git branch new-branch yêu cầu. Điều này sẽ tạo một nhánh mới phản ánh các cam kết trên nhánh hiện đang hoạt động:

$ git branch new-branch
$ git branch
* master
new-branch

Lưu ý: Đằng sau hậu trường, Git không thực sự tạo ra một bộ cam kết mới để đại diện cho nhánh mới. Một nhánh giống như một thẻ và các cam kết là chia sẻ. Bạn là phân nhánh ra một loạt các thay đổi mới từ nhánh chính. Khi một nhánh đối tượng được hoàn thành và được sáp nhập vào nhánh chính, những thay đổi trong nhánh đó sẽ trở thành nhánh chính cho đến khi bạn hợp nhất một nhánh đối tượng mới vào nhánh chính.

Tại thời điểm này chúng ta đã tạo một nhánh mới nhưng vẫn nằm trên nhánh nguồn. Để bắt đầu làm việc trên nhánh mới trước tiên chúng ta cần chạy lệnh git checkout new-branch. Điều này sẽ thay đổi nhánh hoạt động thành nhánh mới:

$ git checkout new-branch
Switched to branch ‘new-branch'
$ git branch
master
* new-branch

Tại thời điểm này, các cam kết có thể được thực hiện trên nhánh mới để triển khai tính năng mới. Sau khi tính năng hoàn tất, nhánh có thể được hợp nhất trở lại nhánh mã chính.

Đầu tiên chúng tôi chạy git checkout master để thay đổi nhánh hoạt động trở lại master chi nhánh. Sau đó chúng ta chạy lệnh git merge new-branch đến hợp nhất tính năng mới vào tính năng chính chi nhánh.

Lưu ý: git merge hợp nhất nhánh được chỉ định vào nhánh hiện đang hoạt động. Vì vậy chúng ta cần phải ở trên nhánh mà chúng ta đang ở sáp nhập vào.

Nếu bạn đang hợp nhất một tính năng mới vào nhánh chính, trước tiên bạn muốn chuyển sang nhánh chính rồi hợp nhất vào nhánh đó:

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
Switched to branch 'master'
$ git merge new-branch

Xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, các tiêu chuẩn được ngành công nghiệp chấp nhận và bảng lừa đảo đi kèm. Dừng lệnh Googling Git và thực sự học nó!

Nếu mọi việc suôn sẻ thì công việc của chúng tôi đã hoàn thành. Tính năng mới cam kết hiện xuất hiện trong nhánh chính. Tuy nhiên, có thể Git sẽ không thể hoàn tất việc hợp nhất do có sự thay đổi xung đột trong nhánh nguồn. Đây được gọi là một hợp nhất xung đột.

Tóm lại, đây là các lệnh để tạo một nhánh mới, thực hiện một số cam kết và hợp nhất nó lại thành nhánh chính:

$ git checkout master
$ git branch new-branch
$ git checkout new-branch

# ...develop some code...

$ git add .
$ git commit –m "Some commit message"
$ git checkout master
$ git merge new-branch

Lưu ý

Bài viết này được viết bởi Jacob Stopak, một nhà tư vấn và phát triển phần mềm với niềm đam mê giúp đỡ người khác cải thiện cuộc sống của họ thông qua mã. Jacob là người tạo ra Cam kết ban đầu – một trang web dành riêng để giúp các nhà phát triển tò mò tìm hiểu cách mã hóa các chương trình yêu thích của họ. Dự án nổi bật của nó giúp mọi người học Git ở cấp độ mã.

Dấu thời gian:

Thêm từ xếp chồng lên nhau