Bài viết được sự cho phép của tác giả Lê Chí Dũng
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