2017-06-16 109 views
0

我有一個被推送到遠程的提交,我想更改它的消息。如何更改推送的git commit的名稱?

我知道我可以使用git push -f強制推送不同的提交,但首先我需要刪除舊提交併保留更改,以便我可以再次提交。

我該怎麼做?

回答

4

作爲一個免責聲明,這個答案涉及到重寫有關分支的歷史。因此,應該謹慎使用已公開分享的分支機構。

最簡單的解決這裏,假設沒有其他人推到分支的遠程副本,是簡單地修改提交經:

git commit --amend 

這應該彈出一個文本編輯器,你可以將提交消息更改爲任何你想要的。

正如你所說,你現在必須強制通過這個分支推送到遠程的:

git push --force origin yourBranch 
+0

謝謝,我以爲'--amend'只用於本地提交。 – jcubic

2

如果你想改變的最新承諾,使用

git commit --amend 

然而,對於已經被推送的提交,你只能這樣做,如果你確信沒有人簽出的承諾將要覆蓋。

1

以及你需要使用下面的命令git commit --amend,這將創造同樣的地方,但有正確的信息提交,然後你把它推到遠程

0

使用:

git commit --amend 

似乎這裏是顯而易見的解決方案,但你沒有提到任何分支在你的問題,以便答案可能不正確的解決方案在你的情況。 如果您要重命名的承諾是隻有你創建的,至今使用的,並沒有被合併到另一個分支的一個分支,我建議另一種選擇是:

  • 分支,從一個新的分支提交之前在這個問題提交
  • 重新執行代碼更改
  • 與正確的消息文本
  • 重新提交推新分支
  • 刪除和推送的缺失的老枝的

不過,它確實取決於提交是在單獨的分支上還是在主要分支上(例如,主)。

+0

我認爲有問題的提交已經推送到遠程。 –

+0

沒錯,但如果它在沒有人使用的分支上,它可以安全地刪除。似乎這個問題缺乏關於分支的信息。無論如何,似乎他接受了你的回答,所以我剛纔提出了另一種解決問題的方法 – yorammi