簡體   English   中英

無法更改(不是最后一個)推送的提交消息

[英]can not change the (not the last) pushed commit message

我不會更改已推送的提交消息,而不是最后一次提交。 正如git文檔所建議的那樣,我只是按如下方式進行了變基:

rebase -i HEAD~2

然后按如下方式編輯結果:

reword e499d89 some thig been done
pick 0c39034 some other thing been done

然后成功保存提交列表文件,並且在對改寫后的提交進行編輯后,將提示如下:

some thig been done
#some comments here
-->list of changelist here

我編輯了提交消息並保存了它,但是畢竟git日志在git提交及其消息中沒有顯示任何更改。

最終 ,問題是由於提交消息文本,由於問題跟蹤器和git服務器的集成,我們在任何提交開始的尖銳符號后添加了問題ID,因此提交看起來像這樣:

#123 some thing been done

然后在編輯提交消息的最后階段,整個提交消息被解釋為另一個注釋行(我想):

    #123 some thig been done
    #some comments here
    -->list of changelist here

因此,只需在尖號之前添加一個空格即可解決問題並創建新的提交:

 #123 some thig been done
#some comments here
-->list of changelist here

PS:我不知道它是否可以稱為git的bug?

通過所有操作后: 重新措詞 ->輸入新的提交消息->保存文件->關閉文件
您應該強制推送修改后的提交以更改提交歷史記錄:

$ git push --force

假設提交日志為ABCDE<-master並且您想修改C的提交消息。

git checkout master
git reset C --hard
git commit --amend
#modify the change commit message, save and quit
git cherry-pick C..E
#or git cherry-pick D E
#or git cherry-pick D;git cherry-pick E
git push origin -f master:master

如果其他人已克隆或獲取了您以前的master ,則需要通知他們以將master更新到最新版本。

假設他們具有本地master ABCDEFG

git fetch origin master
git reset B --hard
git rebase FETCH_HEAD
git cherry-pick F G

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM