Git 回滚以前的提交,但仍保留历史记录
我在git中有以下历史记录Git 回滚以前的提交,但仍保留历史记录,git,git-rebase,Git,Git Rebase,我在git中有以下历史记录 A-B-C-D-E-F 我想回滚我在commit E中所做的更改,但想回滚我在commit F中所做的更改。因此,我像这样做了一个git-rebase git rebase -i D A-B-C-D-E-F-E1 只选择了提交F,忽略了提交E。我的历史记录现在看起来像 A-B-C-D-F 但是,我想做的是,回滚在commit E中所做的更改,但仍然在历史记录中保留E是被添加然后被删除的。像这样的 git rebase -i D A-B-C-D-E-F-E1
A-B-C-D-E-F
我想回滚我在commit E中所做的更改,但想回滚我在commit F中所做的更改。因此,我像这样做了一个git-rebase
git rebase -i D
A-B-C-D-E-F-E1
只选择了提交F,忽略了提交E。我的历史记录现在看起来像
A-B-C-D-F
但是,我想做的是,回滚在commit E中所做的更改,但仍然在历史记录中保留E是被添加然后被删除的。像这样的
git rebase -i D
A-B-C-D-E-F-E1
其中E1是一个提交,它还原提交E所做的更改
如何在git中实现这一点?
git revert$SHA_FOR_E
将生成一个新的提交,与提交E相反
:
给定一个或多个现有提交,还原相关修补程序引入的更改,并记录一些记录这些更改的新提交
git revert$SHA_FOR_E
将使新的提交成为“提交E”的“反面”
:
给定一个或多个现有提交,还原相关修补程序引入的更改,并记录一些记录这些更改的新提交
你用这个。这将创建一个与提供的SHA相反的提交
git revert
您可以使用。这将创建一个与提供的SHA相反的提交
git revert
我不认为rebase
是一条可行的道路。我的第一个建议是使用
这将创建一个新的提交还原,以恢复已应用的E
另一种选择是将补丁反转
git show E | patch -R -p1 && git commit .
将扭转在
E
中所做的事情,我认为rebase
不是一个好办法。我的第一个建议是使用
这将创建一个新的提交还原,以恢复已应用的E
另一种选择是将补丁反转
git show E | patch -R -p1 && git commit .
将反转在
E
中所做的操作,谢谢。我读到了关于恢复
,但有些人对重新基础
感到困惑,谢谢。我读到了关于还原
,但有些人怎么会被重设基础