我想在GIT中特定分支上的一系列提交中还原一个较早的提交,而不影响以后的更改。也就是说,我只希望将作为特定提交(早期)的一部分推送的更改保留下来,而使更改在以后保持不变。
此外,如果此分支以后与另一个分支合并,情况将如何变化?
我可以尝试一下,但是不确定是否有帮助。
git revert <CommitId>
答案 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:)并创建拉取请求。