首页 > 解决方案 > Git 还原一些提交(包括合并),然后稍后重新提交

问题描述

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

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

标签: gitversion-controlgit-revert

解决方案


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

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

您也可以rebase使用rebase -i origin/mybranch. Rebase 是 git 最强大的功能,它允许你重写历史。这也有点危险,所以要小心。

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

无论你对本地 git 目录做什么,reflog都会让你看到你的 repo 以前的状态(提交)。当我搞砸变基或重置时不小心“丢失”提交时,它保存了我的屁股一次或两次。


推荐阅读