我有 2 个远程分支,分别是 dev 和 master。
我总是在 dev 分支开发并将更改 merge 到 master 分支。
但是我发现我不小心使用了master分支开发然后提交并推送到远程。
有什么方法可以还原它,比如取消最后一次提交而不创建新历史吗?
我正在使用源代码树
最佳答案
(CLI 解决方案 - 但仍然欢迎使用 SourceTree 解决方案)
由于您独自在 repo 上工作,没有 banch 权限方案阻止您推送,您唯一的问题是找到哪个提交是 master
在你最后一次 push 之前。
您可以简单地从您的 git log --oneline master
中找到它如果您只提交了几次,则输出。从 dev
中找到最后一次 merge ,请注意提交哈希,我们称它为 <oldMasterHash>
.
然后就去做
# move dev where master is now
git checkout -B dev master
git push
# now let's "repair" master
git checkout master
git reset --hard <oldMasterHash>
# here we'll need --force to push since this is a history rewrite
git push --force
...您将准备就绪,无论是本地还是远程。
关于git - 源代码树 - 如何还原推送的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64802468/