Git 还原一些提交(包括合并)然后稍后重新提交

Git Revert a few commits (including merges) then recommit them later

我有一个登台服务器,我使用 git pull 从 git 服务器更新代码。这里有一个可能相关也可能不相关的细节是,在某个时候它开始发生,每次我拉它时都会要求我合并。我还没有足够的时间弄清楚为什么。无论如何,如果我查看 git log 每次拉动后都会有一个合并。无论如何,不​​是真正的问题。我只需要暂时恢复 2 个以前的提交(有 2 个相应的合并)。我非常有信心如何使用 git revert 出现在 git 日志中的 2+2 = 4 哈希然后提交。

问题是我想在以后重新提交还原,因为我们稍后会需要这些更改,但不是现在。我是否需要做任何特别的事情,以免丢失我还原的提交?

revert 可能 不是 您想要的; revert 添加一个新的提交来撤消一组更改。 reset 更像是它,用于修改分支历史记录,但在做任何鲁莽的事情之前请继续阅读。

我建议的第一件事是尝试使用 pull -r 将您的本地更改自动重新定位到更新后的 HEAD 分支(即分支的远程副本)。

您还可以与 rebase -i origin/mybranch 开始互动 rebase。 Rebase 是 git 最强大的功能,可让您重写历史记录。这也有点危险,所以要小心。

教程 rebasehttps://www.atlassian.com/git/tutorials/rewriting-history/git-rebase

无论您对本地 git 目录做什么,reflog 都会让您看到您的存储库之前的状态(提交)。当我搞砸了 rebase 或重置时不小心“丢失”了一次提交时,它救了我一两次。