在工作中可能因為某種原因(比如注釋不符合公司的代碼規(guī)范)需要修訂已經(jīng)提交到本地版本庫的提交注釋。幸好栓撞,Git為我們提供了修訂的命令舔琅。
1吝秕、修訂本地最新commit的提交注釋
$ git checkout dev
Switched to branch 'dev'
$ git log
commit e431f6bff637b93bc5292b0024e54f63279eb23a (HEAD -> dev)
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 17:26:41 2019 +0800
修改開發(fā)環(huán)境配置
commit 24a0e7b3b5ba60d1eeaf6b67759537abaefcacdd
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 17:16:39 2019 +0800
新增開發(fā)環(huán)境配置
commit bccce04629c60f7b31961c69021109c3ce3137db (tag: v1.0, origin/master)
Merge: 314e9a6 b78055d
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 15:47:01 2019 +0800
解決沖突
使用git commit --amend命令修訂最新的commit的提交注釋
$ git commit --amend
然后進入vim編輯頁面泊脐,該頁面的操作就是vim的操作方法了,比如按i插入烁峭,然后移動光標修改內(nèi)容
修改開發(fā)環(huán)境配置111
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Tue Feb 26 17:26:41 2019 +0800
#
# On branch dev
# Changes to be committed:
# modified: application-dev.yml
#
比如容客,我們在原有的注釋后面加上111,然后保存退出(vim的操作命令)
[dev 933bd7b] 修改開發(fā)環(huán)境配置111
Date: Tue Feb 26 17:26:41 2019 +0800
1 file changed, 2 insertions(+), 1 deletion(-)
修訂成功约郁,再使用git log查看提交注釋缩挑,發(fā)現(xiàn)已經(jīng)修改過來了
commit 933bd7beb365caa34c4d20100e3b8263625026a7 (HEAD -> dev)
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 17:26:41 2019 +0800
修改開發(fā)環(huán)境配置111
commit 24a0e7b3b5ba60d1eeaf6b67759537abaefcacdd
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 17:16:39 2019 +0800
新增開發(fā)環(huán)境配置
commit bccce04629c60f7b31961c69021109c3ce3137db (tag: v1.0, origin/master)
Merge: 314e9a6 b78055d
Author: dudan <123770097@qq.com>
Date: Tue Feb 26 15:47:01 2019 +0800
解決沖突
2、修訂第n個提交注釋
命令: git rebase -i HEAD~數(shù)字
其中數(shù)字表示倒數(shù)第幾個提交
例如鬓梅,我現(xiàn)在本地的提交信息如下:
image
如上圖所示供置,現(xiàn)在要求將第二條注釋編輯為“添加說明信息”,輸入命令:
$ git rebase -i HEAD~2
執(zhí)行命令后绽快,如下圖所示:
image
首先操作芥丧,后面再解釋這里的命令,按i谎僻,將第一行的pick改成r娄柳,如下圖所示
image
按ESC,冒號艘绍,wq赤拒,保存,然后進入編輯注釋的頁面诱鞠,如下圖所示
image
修改注釋挎挖,保存退出,然后輸出如下圖信息航夺,說明修改成功:
image
可以使用git log命令查看結(jié)果蕉朵。
3、git rebase 命令解釋
image
pick:保留該commit(縮寫:p)
reword:保留該commit阳掐,但我需要修改該commit的注釋(縮寫:r)
edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
squash:將該commit和前一個commit合并(縮寫:s)
fixup:將該commit和前一個commit合并始衅,但我不要保留該提交的注釋信息(縮寫:f)
exec:執(zhí)行shell命令(縮寫:x)
drop:我要丟棄該commit(縮寫:d)
從這些命令可以看出,這git rebase不僅僅是修改注釋缭保,還可以做很多的事情汛闸,比如合并注釋、刪除commit艺骂、甚至修改代碼诸老,其他用法,這里不再贅述钳恕,感興趣的同學可以自行研究别伏。
小結(jié)
1厘肮、修訂本地未推送的最新的commit的提交注釋
$ git commit --amend
2愧口、修訂本地未推送的第n個commit的提交注釋
$ git rebase -i HEAD~n