Git修改commit提交資訊
當進行一次commit提交的時候,可以附帶簡短的資訊說明,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ commit -m "螞蟻部落提交"
在-m命令後面跟著的"螞蟻部落提交"就是commit提交資訊。
提交資訊可以修改,程式碼例項如下:
[Shell] 純文字檢視 複製程式碼$ git commit --amend -m "c3"
但是上述命令只能修改最後一次commit提交的資訊。
更多內容可以參閱git commit --amend用法詳解一章節。
如果想要修改其他commit提交資訊可以使用如下命令:
[Shell] 純文字檢視 複製程式碼$ git rebase -i
首先看一下提交歷史,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖如下:
下面開始使用git rebase -i命令,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git rebase -i b0aa963
特別說明:
(1).b0aa963用來確定commit範圍,表示從此提交開始到當前的提交。
(2).並不包括b0aa963提交。
執行此命令後,彈出VIM編輯器,關於編輯器的基本操作參閱git Vim編輯器輸入內容、儲存和退出操作一章節。
截圖如下:
截圖說明:
(1).頂部的commit提交排列順序與git log排列相反,最先提交的在最上面。
(2).前面的pick表示保留此次commit提交不做修改。
(3).底部紅框給出所有可用的命令。
假如要修改4f66476提交的commit資訊,程式碼如下:
將pick改為reword(負責修改commit資訊),然後儲存並退出,之後再一次彈出VIM編輯器:
在對應的地方修改,然後退出儲存即可,然後給出如下反饋資訊:
現在看一下提交歷史,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖如下:
一.修改提交資訊的影響:
(1).當前提交的sha-1值改變:
雖然僅僅修改了commit的提交資訊,但是由於sha-1的計算方式決定,它的sha-1也將會被修改。
(2).其後的提交的sha-1值改變:
它後面的commit的sha-1值也會改變,因為後面的commit物件有一個指標是指向前面commit,既然前面commit的sha-1值改變了,那麼這個指標也會發生變化,根據sha-1的計算原則,後面的commit的sha-1值都會改變。
二.取消修改:
如果你還記得在修改之前,最後一次commit提交的sha-1值,應用如下程式碼即可:
[Shell] 純文字檢視 複製程式碼$ git reset 04a540f --hard
如果忘記sha-1值,那麼可以採用如下程式碼:
[Shell] 純文字檢視 複製程式碼$ git reset ORIG_HEAD --hard
關於ORIG_HEAD可以參閱Git ORIG_HEAD用法介紹一章節。
相關文章
- git 修改 commit 資訊GitMIT
- git 修改已有commit的提交日期GitMIT
- Git 修改已提交的commit註釋GitMIT
- Git拆分commit提交GitMIT
- 基於Git rebase修改歷史提交資訊Git
- git commit提交空內容GitMIT
- git如何撤銷已經提交到遠端的commit資訊GitMIT
- git修改commit註釋GitMIT
- git 修改提交作者及提交日期Git
- Git使用經驗總結5-修改提交資訊Git
- git commit未能提交指定檔案原因GitMIT
- Git 實用操作:撤銷 Commit 提交GitMIT
- Git基於指定commit提交建立分支GitMIT
- git 刪除錯誤提交的commitGit除錯MIT
- 提交內容到版本庫:git commitGitMIT
- Git刪除錯誤提交的commitGit除錯MIT
- Git檢視指定commit資訊GitMIT
- git撤銷某一次commit提交GitMIT
- git回退到某個commit git回滾到某個提交GitMIT
- Maven 專案獲取 Git 的提交分支、commit id、構建時間等資訊MavenGitMIT
- 優雅的提交你的 Git Commit MessageGitMIT
- Git提交規範中,常見的commit型別GitMIT型別
- 修改 git repo 歷史提交的 authorGit
- [譯]AngularJS Git提交資訊規範AngularJSGit
- 編寫git commit資訊的最佳實踐GitMIT
- git(osx)上的一個git commit無法正確提交的問題GitMIT
- Git的修改提交記錄和變基Git
- git blame檢視檔案由哪次提交修改Git
- Vscode中新功能Commit Graph能提升Git提交效能VSCodeMITGit
- 【譯】編寫git commit資訊的最佳實踐GitMIT
- 如何修改git已提交記錄的郵箱?Git
- git提交時支援檔名大小寫的修改Git
- Git提交歷史的修改刪除合併Git
- git撤銷已經提交到遠端伺服器的commitGit伺服器MIT
- git提交失敗——running pre-commit hook: lint-stagedGitMITHook
- git commit後如何取消commitGitMIT
- commit 的非同步提交MIT非同步
- 非同步提交(Asynchronous COMMIT)非同步MIT