微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

源代码树-如何还原推送的提交

如何解决源代码树-如何还原推送的提交

我有2个远程分支,分别是dev和master。
我总是在dev分支中进行开发,并将更改合并到master分支中。
但是我发现我不小心使用了master分支进行开发,然后提交并推送到远程。

enter image description here

是否有任何方法可以还原它,例如取消上一次提交而不创建新历史记录?
我正在使用源代码

解决方法

(CLI解决方案-但仍欢迎使用SourceTree解决方案)


由于您在回购协议上独自工作而没有阻止权限的计划,因此您唯一的问题是在上次推送之前找出是哪个master提交。

只需几次提交,您就可以从git log --oneline master的输出中找到。从dev中查找最后一个合并,请注意提交哈希,我们将其称为<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

...您将被设置为本地和远程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。