如何在不影响以后的提交的情况下还原旧的Git提交?

时间:2019-02-05 15:51:56

标签: git git-bash

我想在GIT中特定分支上的一系列提交中还原一个较早的提交,而不影响以后的更改。也就是说,我只希望将作为特定提交(早期)的一部分推送的更改保留下来,而使更改在以后保持不变。

此外,如果此分支以后与另一个分支合并,情况将如何变化?

我可以尝试一下,但是不确定是否有帮助。

git revert <CommitId>

2 个答案:

答案 0 :(得分:1)

git revert <commitXYZ>将在当前分支的顶部创建一个新的提交,其中包含与<commitXYZ>中引入的更改相反的内容。如果原始(有缺陷的)提交添加了一行,则还原提交将是该行的删除。

假设B'是您执行git revert B时创建的提交:

A --- B --- C --- D --- B'

这里,A,B,C和D提交将保持不变(是的,甚至是B)。来自B的更改将不再出现在B'状态,但是提交B仍在历史记录中。

答案 1 :(得分:0)

我实际上今天必须这样做。您必须找到旧的提交,然后使用代码编辑器手动删除所做的更改(我使用Notepad ++)。然后将提交标记为还原(REVERT:)并创建拉取请求。