2017-03-13 169 views
1

提交我想更改其消息已被推送,並且在5個提交中間爲。有什麼方法可以編輯提交消息嗎?編輯後發生了什麼,當有人已經提交了提交?如何編輯推送Git提交的提交消息

+0

您將創建發散歷史,因爲如果您更改提交消息,您將獲得新的哈希標識該評論以及隨後的所有內容。我會首先確保你真的**必須改變這個提交信息,或者如果你能忍受這個錯誤。 –

+0

[Git:使用git rebase更改已經推送的提交消息]可能的重複(http://stackoverflow.com/questions/42252725/git-change-already-pushed-commit-message-using-git-rebase) –

+0

是一個的答案爲你工作?請接受一個。 – Julian

回答

1

認爲最好的做法是不要改變已經推出的東西。

但是,您可以使用git rebase -i編輯任何提交,並選擇r (reword)作爲您想要更改的提交。

如果您之前推過它,您需要用push -f(強制推送)推送它。

您將改變整個樹從該提交和轉發,所以所有其他已經克隆存儲庫將需要做一個git pull做得對。如果他們根據當前樹進行了更改,那麼他們會很難爲他們做好準備,所以最好的做法是讓每個人都推動他們的更改,「凍結」存儲庫,然後讓他們在推送後再次提取。

1

通常不建議更改已公開提供的提交。當你意識到自己的時候,當其他人已經在其上工作時編輯這樣的提交可能會在對方試圖發佈他們的工作時導致衝突。

話雖如此,git rebase -i HEAD~5將允許您交互重新綁定您的最後五個提交。它會在您的編輯器中打開一個ToDo文件,允許您根據需要重寫歷史記錄。其中,將會有一個reword選項,允許您更改特定提交的提交消息。你只需要將提交前的pick更改爲reword並保存文件,git會提示你輸入新的提交信息。

請注意,您將創建一個全新的提交,並且如果您想要發佈它,則必須使用--force選項進行推送。

3

由於這是標有tortoisegit,我會告訴你,你怎麼會在TortoiseGit archieve這個

  1. 打開底墊:Rebase

  2. 變基到例如主並選擇'編輯'Edit

  3. '開始rebase'並編輯消息。之後按'ammend'。 enter image description here

+0

也許這很容易從日誌對話框 – MrTux

+0

開始rebase即使這個錯誤提交已經在源代碼中,並且其他人已經拉出來了嗎?當其他人拉編輯的提交時,它的行爲如何? – Ronald

+0

是的,因爲你可以用git做所有事情,但其他人會有不好的時間。不建議 – Julian