Làm thế nào để bạn có tất cả cam kết trong một?

How Do You Squash All Commits One



Trong Git Squash là một kỹ thuật cho phép bạn thực hiện một loạt các thay đổi trên các cam kết và sau đó hợp nhất nó thành một cam kết. Hãy giải thích với sự trợ giúp của một ví dụ, giả sử bạn có n số lần cam kết và khi bạn áp dụng git squashing trên chúng, bạn có thể thu gọn hoặc nén tất cả 'n' lần cam kết thành một lần cam kết duy nhất. Git squash được sử dụng để thay đổi một số cam kết lớn thành một cam kết nhỏ có ý nghĩa. Vì vậy, bạn có thể làm cho nhật ký git rõ ràng hơn. Bạn cũng có thể hợp nhất các nhánh bằng cách sử dụng kỹ thuật cắt nhỏ. Cách tốt nhất là luôn sử dụng các cam kết và căn cứ lại nó với nhánh chính hoặc nhánh mẹ.

Bài viết này sẽ hướng dẫn chi tiết cho bạn cách Squash tất cả các cam kết trong một cam kết duy nhất trong git. Chúng tôi đã thực hiện tất cả các bước trên bản phân phối CentOS 8 Linux.







Squash cam kết thành một với git

Bạn có thể triển khai git squashing theo các bước sau:



Bước 1: Chọn Bắt đầu cam kết

Để xác định số lượng cam kết bạn cần phải thực hiện, bạn sẽ chạy lệnh sau trên thiết bị đầu cuối:



nhật ký $ git





Bây giờ, bạn sẽ gọi git để bắt đầu một phiên rebase tương tác bằng cách sử dụng lệnh sau:

$ git rebase -i HEAD ~ N

Trong HEAD ~ N ở trên, ‘N’ là tổng số lần cam kết mà bạn đã xác định từ lệnh ‘git log’. Giả sử, số lần cam kết là 4. Bây giờ, lệnh sẽ chuyển thành dạng sau:

$ git rebase -i HEAD ~ 4

Danh sách các cam kết sau sẽ hiển thị trên thiết bị đầu cuối nơi mỗi cam kết nhìn chằm chằm bằng từ chọn.

Bước 2: Thay đổi Pick thành Squash

Ở đây, chúng tôi sẽ đánh dấu tất cả các cam kết là có thể xóa được, hãy để lại cam kết đầu tiên sẽ được sử dụng làm điểm bắt đầu. Vì vậy, hãy thay đổi trình soạn thảo vim thành chế độ chèn bằng cách nhấn ‘i’ và thay đổi tất cả các cam kết chọn thành bí trừ cam kết đầu tiên. Bây giờ, nhấn ‘Esc’ để thay đổi chế độ chèn và nhấn ‘: wq!’ Để lưu tất cả các thay đổi và thoát. Nếu bạn đang sử dụng trình soạn thảo văn bản đơn giản thì bạn có thể chỉ cần thay đổi từ 'pick' thành từ 'squash' và lưu các thay đổi. Sau đó, bạn sẽ thấy cửa sổ sau trên thiết bị đầu cuối:

Khi bạn rời khỏi trình bao này, bạn sẽ thấy các thông báo sau trên cửa sổ đầu cuối:

Nếu sau đó bạn sẽ hoàn thành tất cả, bạn sẽ thấy tất cả các cam kết được kết hợp thành một câu lệnh cam kết duy nhất sẽ hiển thị trên thiết bị đầu cuối:

Phần kết luận

Bằng cách sử dụng bí đao, bạn có thể dễ dàng ép hoặc nén nhiều cam kết thành một cam kết nhỏ hơn. Bạn có thể sử dụng kỹ thuật này để sửa lỗi chính tả trong tài liệu. Chúng tôi đã thực hiện git bí trong bài viết này. Chúng tôi cũng đã thấy cách chúng tôi có thể làm sạch lịch sử bằng cách sử dụng git rebase và các lệnh bí.