如何修改旧的现有推送提交?

时间:2016-09-19 12:36:11

标签: git

查看我的提交树,我看到一个相对较旧的推送提交,但描述不正确。 我想改变它。那可能吗?我怎么能这样做?

提交已经推送到服务器。提交是一个旧的提交,在它之后推送了很多提交。我想改变信息,而不是内容。

2 个答案:

答案 0 :(得分:3)

  

这可能吗?

是的,itzmeontv的回答涵盖了这个

  

我该怎么办?

唐'吨。提交消息是提交的一部分,并影响SHA1哈希(以及其他元数据,如父提交)。

因此,更改消息会创建一个新提交(对树具有相同的效果),因此重写每次后续提交只是为了更改其父级。

也就是说,它构造了一个从原始提交的新版本开始的并行重复时间轴。任何违反原始时间表的人都会不高兴。

答案 1 :(得分: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

pick更改为reword,如

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
    

希望这会有所帮助。了解更多信息https://help.github.com/articles/changing-a-commit-message/