如何解决Git 还原一些提交包括合并,然后稍后重新提交
我有一个临时服务器,我在其中使用来自 git 服务器的 git pull
更新代码。这里可能相关或可能不相关的一个细节是,在某个时候它开始发生,每次我拉它时都会要求我合并。我还没有足够的时间去弄清楚为什么。无论如何,如果我查看 git log
,每次拉取后都会进行合并。无论如何,不是真正的问题。我只需要暂时还原 2 个先前的提交(带有 2 个相应的合并)。我非常有信心如何使用 git revert
出现在 git 日志中的 2+2 = 4 个哈希然后提交。
问题是我想在未来稍后重新提交还原,因为我们稍后需要这些更改,但不是现在。我是否需要做一些特别的事情,这样我才不会丢失我还原的提交?
解决方法
revert
可能不是您想要的; revert
添加一个新的提交来撤消一组更改。 reset
更像它,用于修改分支历史记录,但在做任何鲁莽的事情之前请继续阅读。
我建议的第一件事是尝试使用 pull -r
自动将您的本地更改重新绑定到分支的更新 HEAD
(即分支的远程副本)。
您还可以使用 rebase
启动交互式 rebase -i origin/mybranch
。 Rebase 是 git 最强大的功能,它允许你重写历史。这也有点危险,所以要小心。
rebase
教程:https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
无论你对本地 git 目录做什么,reflog
都会让你看到你的 repo 之前的状态(提交)。当我搞砸 rebase 或重置时不小心“丢失”了一个提交时,它挽救了我的屁股一两次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。