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



我有一个临时服务器,在那里我使用git服务器中的git pull更新代码。这里有一个可能相关也可能不相关的细节是,在某个时候,每次我拉它时,它都会要求我合并。我还没有足够的时间弄清楚原因。无论如何,如果我看git log,在每次拉取之后都会有一个合并。无论如何,不是真正的问题。我只需要暂时恢复之前的两次提交(带有两次相应的合并(。我对如何使用git revert(显示在git日志中的2+2=4散列(然后提交非常有信心。

问题是,我想在未来晚些时候重新提交回复,因为我们稍后需要这些更改,但不是现在。我需要做一些特别的事情吗?这样我就不会丢失我恢复的提交?

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

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

您也可以使用rebase -i origin/mybranch启动交互式rebase。回扣是git最强大的功能,它允许您重写历史。这也有点危险,所以要小心。

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

无论您对本地git目录做了什么,reflog都会让您看到您的repo以前的状态(提交(。它救了我一两次屁股,当我不小心"丢失";当我搞砸了一个重新基准或重置时的承诺。

最新更新