Git 是目前世界上最先進的分散式版本控制系統之一,使用廣泛。使用 Git 的過程中,我們經常會遇到修改提交歷史的需求,比如:我們提交了一個不夠完善或者有錯誤的代碼,需要對其進行修改和完善,此時就需要用到 git commit –amend 命令。
一、修復上一次提交
Git commit –amend 命令可以用來修復上一次的提交,我們可以立即將上一次提交的內容修改後進行重新提交。
git commit --amend
執行該命令後,Git 會進入 Vim 編輯器,並將當前代碼庫的提交信息填入到 Vim 編輯器中,輸入新的提交信息後,執行 :wq 命令即可完成對上一次提交的修改。如果不做任何修改,直接使用 :wq 命令保存的話,相當於什麼也沒做。
二、修改最近一次提交的文件
當我們的代碼庫歷史提交記錄中不止一個提交時,git commit –amend 命令還可以用來修改最近一次提交的文件。
# 修改文件,並將其添加到暫存區
git add file_name
# 執行修改上一次提交
git commit --amend --no-edit
這樣可以達到修改提交信息的目的,而不需要輸入修改指令 Vim 命令。
三、在本地合併多個 commit 信息
當我們為一個特性分支進行多次提交,合併後的提交歷史看起來可能會比較亂,此時可以使用 git commit –amend 命令將多個提交整合到一起。
# 合併當前特性分支前五次提交,並且不修改任何提交信息
git rebase -i HEAD~5
# 將第二次提交至第五次提交 pick 改為 squash
# 保存並退出 Vim
# 修改合併後的提交信息
git commit --amend
# 刪除多餘的提交信息
git rebase --continue
這樣我們就整合了前五次提交記錄,並將其合併為一條提交記錄。使用 git show 命令查看提交記錄詳情時可以看到多個提交記錄信息被整合到了一起。
四、注意事項
1、僅在本地分支使用
修改歷史是 Git 遠程倉庫的重要組成部分,但是修改歷史可能會破壞 Git 倉庫的完整性和可靠性,所以我們不應該修改與項目合作者分享或者已經 push 到 Git 伺服器上的任何提交記錄。因此,git commit –amend 命令僅在本地分支使用,不應該用於與他人協作的多人開發。
2、不要濫用
由於 git commit –amend 命令會改變提交歷史,因此我們不應該濫用該命令。合理使用該命令可以使我們的提交歷史更加清晰和可讀,而濫用該命令會導致提交歷史雜亂無章,使我們難以追溯提交歷史。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/287018.html