squash commits lúc merge từ branch của bạn

Thông thường một feature mới thường được làm trên một nhánh (branch) riêng và thường xuyên pull các cập nhật từ nhánh master trong quá trình đấy.

Sau khi branch này đã được kiểm tra và chấp nhận để merge vào thì lệnh git merge được sử dụng để nhập nhánh này. Xin lưu ý khi merge một nhánh vào thì tất cả commit của nhánh đấy cộng với một commit mới (gọi là meta merge commit) sẽ được thêm vào nhánh chỉ định. Ở một số cty tôi đã từng biết thì các feature đều được quản lý bằng các ticket system và để thuận tiện cho việc truy xuất sau này thì tất cả commit của branch feature đc nén (squash) thành một commit trước khi merge vào master. Thủ tục thông thường là dùng git rebase -i tuy thủ tục này khá là mất thời gian nếu bạn có nhiều commit. Có một chiêu khác tiện lợi hơn tôi muốn chia sẻ là sử dụng

git merge --squash

lệnh này sẽ squash tất cả commit lại thành một và hỏi người dùng tên commit mới là gì rồi sẽ merge vào branch. Nếu bạn muốn edit commit message thì có thế dùng

git merge --squash --edit

Mình chưa bàn về việc để nguyên commit history vs nén lại thành 1 là tốt hay dở, vì mỗi cty có cách thức quản lý riêng, nhưng riêng tôi thì tôi thấy cứ để nguyên để giúp người review sau này có đc một cái nhìn toàn diện về progress của branch, vấn đề chính là sử dụng GitHub hiệu quả (chú thích đầy đủ) để giúp người khác sau này có thể quay lại kiểm tra.

Site Footer

Sliding Sidebar

About Me

About Me

Hello, my name is Dũng (Johnny). Welcome to my blog.

As I’m a developer, I write about topics related to the field of programming, mainly from a technical point of view. On this blog you’ll find posts which encourage discussion, information about development trends, case studies, reviews, tutorials, tips on how to improve your effectiveness, and anything else that might be fascinating to people from the IT industry.
I love PHP, NodeJS,... and Fullstack.