【发布时间】:2018-03-02 18:57:44
【问题描述】:
我不是 git 专家,我正在尝试保存正在处理的代码。 我想按照here 描述的步骤重命名最近的提交。 特别是我先跑了
git commit --amend
使用本地文本编辑器更正拼写错误的提交消息, 那么
git push --force
更新 GitHub 存储库。 一切都很顺利,除了我在 git gui 中还有一个(我相信,对不起,对不起)上游更改标记为红色:
这么说
本地未提交的更改,未签入索引
这个红色标记的更改与我最近修改的提交相同。运行git pull 只是说
已经更新了
那么,我的问题是如何删除那些“重复”的更改? (上图中标记为红色的节点)。
恐怕运行:git reset --hard HEAD^ 只会删除最后修改的提交
【问题讨论】:
-
git gui和gitk都将未提交的工作(在索引和/或工作树中)表示为 看起来像提交的红色圆圈。但这不是提交;它不能通过git push或git fetch转移到另一个Git,它们只转移提交。你可以把它变成一个提交,加上适当的git adds,然后是git commit,然后你就可以转移它了。 -
感谢您的建议。我怀疑我可以只运行
git add然后提交它,但是我不会有两个重复代码的提交吗?修改后的提交已经进行了所有必要的更改,我也成功推送了它。我的问题是如何删除本地未提交的更改或以某种方式将它们合并到最近成功的提交 -
嗨。现在在评论表单中:) 你可以尝试运行
git diff并查看最后修改的提交和工作树(gitk 中的“红色提交圈”)之间的实际区别是什么? -
我已经运行
git diff。它表明实际差异与修改后的提交中提交的差异完全相同。我修改的提交也在 HEAD 的顶部,而本地重复的更改在索引树的顶部