我有一个文件,我针对该文件进行了多次更改,并从新功能分支提交了每个更改。请参考下图。
F0 - C0 - added file "Test.sql" to the repo
F1- C1 - ++ line 01
F2 - C2 - ++ line 02
F3 - C3 - ++ line 03
F4 - C4 - ++ line 04
F5 - C5 - ++ line 05
其中提交和功能的世系是:
C0 < C1 < C2 < C3 < C4 < C5
F0 < F1 < F2 < F3 < F4 < F5
现在,我打算使用以下命令从提交 C3 恢复更改(即从文件中删除第 03 行(:
git revert --no-commit C3
但是我遇到了合并冲突。
我打算做的是,仅从提交 C3 中删除更改,所有其他行将保持不变并按相同的顺序排列。
我该怎么办? 请帮忙。
问候。 库马尔吉特
您有合并冲突,因为下一个提交包含此行并基于此行。唯一的解决方案是手动解决冲突。
您还可以为手动从C3
中删除的内容创建新的提交
我将向您展示如何编辑提交的历史记录,删除不需要的特定提交。如果您只想拥有整个提交历史记录而没有这一次提交,您可以使用rebase
命令。
git log
C2
提交的复制哈希。在您想要更改之前,它必须是一次提交。
git rebase -i hashOfC2Commit
将标志从p
更改为d
(删除(并保存(在控制台中命令:wq
(。
现在,如果您有冲突,请打开编辑器并解决它。解决冲突时使用
git rebase --continue
这是解决冲突和编辑提交历史记录的简单方法。