在GitHub for Windows中撤消Git合并
我需要撤消在GitHub for Windows中启动的合并 它已同步到单个存储库,我尝试同步它,但收到冲突错误消息,因此我犯了错误,将“合并远程跟踪分支”源/pp图表“合并到“pp图表”中在GitHub for Windows中撤消Git合并,git,merge,git-merge,github-for-windows,Git,Merge,Git Merge,Github For Windows,我需要撤消在GitHub for Windows中启动的合并 它已同步到单个存储库,我尝试同步它,但收到冲突错误消息,因此我犯了错误,将“合并远程跟踪分支”源/pp图表“合并到“pp图表”中 我想撤销我所做的一切,我该怎么做?git的好处是,只需创建存储库的新副本,您就可以非常轻松地进行实验。我希望您必须转到命令行来完成您想要的操作 我不是git专家,所以可能会在这里被枪杀,但如果我是在你的情况下,我会这样做: 在新目录中创建存储库的新副本git clone 在新副本中,查看历史记录,找到要作
我想撤销我所做的一切,我该怎么做?git的好处是,只需创建存储库的新副本,您就可以非常轻松地进行实验。我希望您必须转到命令行来完成您想要的操作 我不是git专家,所以可能会在这里被枪杀,但如果我是在你的情况下,我会这样做:
- 在新目录中创建存储库的新副本
git clone
- 在新副本中,查看历史记录,找到要作为新头(即合并前的头)的提交的SHA哈希。我发现使用gitk GUI工具最容易做到这一点。
在命令提示符下gitk
- 一旦您有了要作为新头的提交的SHA散列,就可以在该点重置本地回购
git reset--hard
- 检查本地repo以确保它是您想要的(即在ide中打开它,检查文件系统并执行
并检查历史记录是否与您期望的一样)gitk
- 推送到github,强制将本地版本置于现有版本之上
git推送原点-f
- 在其他地方再次克隆github repo,以检查一切是否正常。如果是,请删除您不想要的loacl repo,然后离开。如果不是,则您仍然保留您的(borked)原件,如果需要,可以将其推到顶部
可能不是最好的解决方案,但我认为这就是我要做的。git的优点是,只需制作存储库的新副本,您就可以非常轻松地进行实验。不过,我希望您必须转到命令行来做您想做的事情 我不是git专家,所以可能会在这里被枪杀,但如果我是在你的情况下,我会这样做:
- 在新目录中创建存储库的新副本
git clone
- 在新副本中,查看历史记录,找到要作为新头(即合并前的头)的提交的SHA哈希。我发现使用gitk GUI工具最容易做到这一点。
在命令提示符下gitk
- 一旦您有了要作为新头的提交的SHA散列,就可以在该点重置本地回购
git reset--hard
- 检查本地repo以确保它是您想要的(即在ide中打开它,检查文件系统并执行
并检查历史记录是否与您期望的一样)gitk
- 推送到github,强制将本地版本置于现有版本之上
git推送原点-f
- 在其他地方再次克隆github repo,以检查一切是否正常。如果是,请删除您不想要的loacl repo,然后离开。如果不是,则您仍然保留您的(borked)原件,如果需要,可以将其推到顶部
可能不是最好的解决方案,但我认为这是我应该做的。如果它被推,我的建议是从现在开始坚持恢复
- Git还原
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
您可以按如下方式还原合并(及其所有提交):
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
如果没有合并提交(在快进合并的情况下),则可以在结束时将它们全部还原,但仅提交如下:
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
使用revert,您不会因为提交历史保持线性而失去任何风险。您始终可以还原还原,因为它只是原始提交的还原差异
- 吉特再基地
git rebase --interactive [hash of the commit prior to those you want to remove]
它将打开一个编辑器,您必须在其中删除您不想要的提交条目。请谨慎使用最后一个解决方案,但如果您没有信心,也许可以从“还原”开始
- Git重设硬
git reset --hard [the last good commit you want]
再次提醒您,在执行重置时,您所做的更改将丢失在分支中!如果它被按下,我的建议是从现在开始坚持还原
- Git还原
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
您可以按如下方式还原合并(及其所有提交):
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
如果没有合并提交(在快进合并的情况下),则可以在结束时将它们全部还原,但仅提交如下:
Merge branch 'pp-chart'
git revert -m 1 [hash of the merge commit]
git revert --no-commit [first hash]
git revert --no-commit [second hash]
git revert --no-commit [third hash]
git commit -m "my message"
使用revert,您不会因为提交历史保持线性而失去任何风险。您始终可以还原还原,因为它只是原始提交的还原差异
- 吉特再基地
git rebase --interactive [hash of the commit prior to those you want to remove]
它将打开一个编辑器,您必须在其中删除您不想要的提交条目。请谨慎使用最后一个解决方案,但如果您没有信心,也许可以从“还原”开始
- G