我有一个文件,我对此文件进行了多项更改,并从新功能分支提交了每个更改。请参考下图。
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中删除更改,其他所有行将保持不变并且顺序相同。
我该怎么办? 请帮忙。
关于。 库玛吉特
答案 0 :(得分:0)
您有合并冲突,因为下一次提交包含此行并以此为基础。唯一的解决方案是手动解决冲突。
您还可以为从C3
手动删除的内容创建新的提交
我将向您展示如何编辑提交历史记录,删除不需要的特定提交。如果您只想拥有整个提交历史而没有一次提交,则可以使用rebase
命令。
git log
复制C2
个提交的哈希值。要更改之前,必须先提交一次。
git rebase -i hashOfC2Commit
将标志从p
更改为d
(放置)并保存(控制台中的命令:wq
)。
现在,如果您有冲突,请打开编辑器并解决它。解决冲突后,请使用
git rebase --continue
这是解决冲突和编辑提交历史记录的简便方法。