2016-09-19 35 views
0

看着我的提交樹,我看到一個相對較舊的推送提交了不正確的描述。 我想改變它。那可能嗎?我該怎麼做?如何修改舊的現有推送提交?

該提交已被推送到服務器。該提交是一箇舊的提交,其後提交了很多提交。我只想更改消息,而不是內容。

+0

http://stackoverflow.com/a/179147 – mm759

+3

可能重複[如何修改現有的,unpushed提交?](http://stackoverflow.com/questions/179123/how-to-modify-existing-unpushed - 提交) – Vampire

+0

我試過這個,但它不適用於舊的提交。或者,我可能只是不明白如何將它應用到一箇舊的。@ mm759 –

回答

2

無論如何,您必須做force push(不推薦),它會重寫該提交中的整個樹。

git rebase -i HEAD~n # Displays a list of the last n commits on the current branch 

從列表類似,

pick e499d89 Delete CNAME 
pick 0c39034 Better README 
pick f7fde4a Change the commit message but push the same commit. 

# Rebase 9fdb3bd..f7fde4a onto 9fdb3bd 

變化pickreword

pick e499d89 Delete CNAME 
reword 0c39034 Better README #line to change the message 
pick f7fde4a Change the commit message but push the same commit. 

# Rebase 9fdb3bd..f7fde4a onto 9fdb3bd 
  • 保存並關閉提交列表文件。在每個生成的提交文件中, 鍵入新的提交信息,保存該文件並關閉它。

    然後

    git push --force 
    

希望這helps.for更多信息https://help.github.com/articles/changing-a-commit-message/

3

這可能嗎?

是,itzmeontv的回答涵蓋了這

我該怎麼辦呢?

不要。提交消息是提交的一部分,並影響SHA1哈希(以及其他元數據,如父提交)。

更改消息因此創建一個新的提交(與在樹中的相同的效果),因此,也重寫每個後續提交只是改變他們的父母。

也就是說,它構造了一個以該原始提交的新版本開始的並行複製時間線。其他任何與原始時間線相反的人都會不高興。

+1

請注意,即使一旦你說服每個人都容忍你的歷史重寫,他們仍然會擁有舊的提交,直到它被垃圾收集,並且只要他們希望它永遠活着就可以標記它。 – Useless