修改git commit 除了 git commit --amend 還有 git commmit rebase, reset,
阿新 • • 發佈:2019-01-25
如果發現上一次提交的內容存在問題,就需要修改了。
git add .
git commit – amend
#重新修改
git add .
git commit -m “MSG”
基本概念
Change: Gerrit中的一個Change就是一個Review任務,它對應一個commit。 每個commit,應該是為了一個目的的完整修改。如果某一次修改不完全,就需要修正該commit。 每一次修正之前的commit,重新提交時,都應該保持Change-Id不變,這樣就不會產生新的Change,而是在原有的Change下產生一個新的Patch Set。 所有的Patch Set中,只有最新的一個是真正有用的,能夠合併的。圖1:Change和Change-Id
圖2:Patch Set
修改前一次提交的方法
方法一:用–amend選項
#修改需要修改的地方。git add .
git commit –
注:這種方式可以比較方便的保持原有的Change-Id,推薦使用。
方法二:先reset,再修改
這是可以完全控制上一次提交內容的方法。但在與Gerrit配合使用時,需特別注意保持同一個commit的多次提交的Change-Id是不變的。 否則,就需要Abondon之前的Change,產生一些垃圾不說,操作得不對,會使得簡單的事情複雜化,甚至無法合併。 git reset HEAD^#重新修改
git add .
git commit -m “MSG”
特別注意:為了保持提交到Gerrit的Change不變,需要複製對應的Change-Id到commit msg的最後,可以到Gerrit上對應的Change去複製,參見圖1。
方法三:只是修改作者
如果email不對,會無法提交到Gerrit,所以這個命令也可能用到。 git commit –amend –author=<user-email>注:如果該email地址從未有過成功的提交,這個修改會不成功。在別的分支做一次成功提交之後,就可以修改了。