【问题标题】:Safely deleting a commit after git amend and git push --force在 git amend 和 git push --force 之后安全删除提交
【发布时间】:2018-03-02 18:57:44
【问题描述】:

我不是 git 专家,我正在尝试保存正在处理的代码。 我想按照here 描述的步骤重命名最近的提交。 特别是我先跑了

git commit --amend

使用本地文本编辑器更正拼写错误的提交消息, 那么

git push --force

更新 GitHub 存储库。 一切都很顺利,除了我在 git gui 中还有一个(我相信,对不起,对不起)上游更改标记为红色:

这么说

本地未提交的更改,未签入索引

这个红色标记的更改与我最近修改的提交相同。运行git pull 只是说

已经更新了

那么,我的问题是如何删除那些“重复”的更改? (上图中标记为红色的节点)。 恐怕运行:git reset --hard HEAD^ 只会删除最后修改的提交

【问题讨论】:

  • git guigitk 都将未提交的工作(在索引和/或工作树中)表示为 看起来像提交的红色圆圈。但这不是提交;它不能通过git pushgit fetch 转移到另一个Git,它们只转移提交。你可以把它变成一个提交,加上适当的git adds,然后是git commit,然后你就可以转移它了。
  • 感谢您的建议。我怀疑我可以只运行git add 然后提交它,但是我不会有两个重复代码的提交吗?修改后的提交已经进行了所有必要的更改,我也成功推送了它。我的问题是如何删除本地未提交的更改或以某种方式将它们合并到最近成功的提交
  • 嗨。现在在评论表单中:) 你可以尝试运行git diff 并查看最后修改的提交和工作树(gitk 中的“红色提交圈”)之间的实际区别是什么?
  • 我已经运行git diff。它表明实际差异与修改后的提交中提交的差异完全相同。我修改的提交也在 HEAD 的顶部,而本地重复的更改在索引树的顶部

标签: git github


【解决方案1】:

我通过简单地更改上游节点中的文件(标记为红色)解决了这个问题

本地未提交的更改,未签入索引

并承诺。

“本地未提交的更改,未签入索引”被我的新提交覆盖

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 2014-06-19
    • 2021-11-19
    • 2014-11-11
    • 2012-09-21
    • 2020-04-06
    • 2016-12-29
    • 2014-01-02
    相关资源
    最近更新 更多