当我在Git中指定一个祖先提交对象时,我在HEAD^和之间感到困惑HEAD~.
两者都有像" HEAD^3和"这样的"编号"版本HEAD~2.
它们看起来与我非常相似或相同,但是波浪号和插入符之间有什么区别吗?
我不小心用过git commit --amend.我的文本编辑器已打开并等待输入.我知道,当我现在关闭它(不更改现有的提交消息)时,将修改提交.我该怎么做才能中止这个过程?
这篇博客文章说我可以简单地删除提交消息,然后提交将无效并被忽略.那是对的吗?还有替代品吗?
我不小心输入了一个git commit --amend.这是一个错误,因为我意识到提交实际上是全新的,它应该用新消息提交.我想做一个新的提交.我该如何撤消这个?
这可能听起来很奇怪,但我刚刚修改了一个提交来测试我的EDITOR环境变量.即使我没有编辑提交消息或任何文件,我也不知道提交会被修改.有问题的提交从开发分支合并到主分支并标记.修改后,分支结构变得很糟糕:

我不知道这是多么糟糕或将来会引起多少问题,但我不敢触及存储库,直到我知道更多.在修改"添加的文档"之前,我真的很想回到存储库.承诺.开发分支应该指向"添加的文档".提交已合并到主分支,以及当前"添加的文档".提交不应该存在.
那可能吗?
有关:
场景:我提交,推送到远程服务器,然后使用--amend提交其他内容.如果我再次尝试推送,我会收到错误,因为我改变了已被推送的历史记录.
假设我确实关心修改后的更改,如何将修改后的提交转换为独立提交,因此历史记录如下所示:
commit 1 <- commit 2
(already pushed to server) <- (originally from amended commit)
Run Code Online (Sandbox Code Playgroud)我试图避免使用push -f.
这是一个非常相似的问题,但有一个关键的区别:在那个问题中,他还没有将提交1推送到远程仓库.在我的问题中,我有.