Git nâng cao
Amanda Crawford-Adamo
Software and Data Engineer
Lệnh Git rebase:
git rebase <branch_name>

data-cleanup.git checkout data-cleanup
main lên nhánh data-cleanup.git rebase main
data-cleanup được tạo lại sau commit mới nhất của maindata-cleanup có hash mớiLưu ý: Nếu có xung đột, cần tự xử lý thủ công.

git rebase -i <commit_hash>
Chức năng
Cảnh báo!
main$$
Đây là lịch sử nhánh data-validation trước khi chỉnh sửa lịch sử commit.
$ git log --oneline data-validation
abc1234 Optimize validation performance
def5678 Fix validation bug
ghi9101 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
Cách chỉnh sửa lịch sử commit bằng lệnh pick và fixup trong trình soạn thảo.
$ git rebase -i HEAD~3
pick ghi9101 Add data validation function
fixup def5678 Fix validation bug
fixup abc1234 Optimize validation performance
# Rebase xyz1234..abc1234 onto HEAD~3(xyz1234) (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# f, fixup <commit> = like "squash", but discard this commit's log message
...
Trước
$ git log --oneline data-validation
abc1234 Optimize validation performance
def5678 Fix validation bug
ghi9101 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
Sau
$ git log --oneline data-validatoin
mno6789 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
Các commit sau được gộp thành một

Merge
Rebase
Merge
Dùng để tích hợp tính năng đã hoàn tất, giữ ngữ cảnh phát triển
Rebase
Dùng để cập nhật nhánh tính năng theo main, hoặc dọn lịch sử trước khi merge
Lưu ý
Git nâng cao