2012-07-22 70 views
29

我愚蠢地向GitHub推送了一個非常糟糕的提交名稱。我該如何改變這一點?你如何重命名推送到GitHub的Git提交?

git commit --amend還在爲已推送提交工作嗎?

+0

使用'git commit --amend'後面跟着'git push --force'。 – vanza 2012-07-22 19:52:11

+0

我不會推薦'git push --force'。你想要明確,只是強迫你需要強迫你。例如:'git push --force origin specific-branch'。你也可以使用'-f'的簡寫形式。短表格也可以作爲一個選項連接在一起。例如。 'git push -uf origin mybranch' – 2012-07-22 21:24:10

回答

50
git commit --amend 

這將使你的編輯器,或

git commit --amend -m "Your new message here" 

,這將允許你指定命令行上的新信息。也有可能,但如果你有別的提交到改寫

git rebase -i HEAD^ 
# then replace 'pick' with 'r' or 'reword' and save, editor should pop up again to edit the msg 

因爲這犯了一個新的SHA1由於內容的變化更加有用,您將需要力推新的參考。這個強制是需要的,因爲它告訴git忘記以前的提交。這是一項安全措施。

git push origin your-branch-name -f 
+3

需要記住的一點是,如果您正在處理一個大型項目,其中某個人可能已經檢出了您要替換的提交,那麼他們的工作就會變得非常難以合併英寸 – 2012-07-22 20:13:07

+1

如果你正在重命名的東西,這是非常微不足道的。他們所需要做的就是'git fetch'和'git rebase origin/master',假設它們在master上工作。沒有衝突,因爲沒有快照被改變。 – 2012-07-22 21:21:49