0

我通过编辑行(像往常一样)对几个文件进行了一些更改并进行了提交。然后假设发生了变化,我发现我需要同时使用已删除的行和添加的行。如何恢复已删除的行(与git show显示为红色的完全一样)但又保留添加的(绿色)行,而无需从以前的版本手动复制粘贴?

更可取的方法是在前一个提交和当前提交之间触发一个“类似合并”的冲突解决方案。然后我会清理标记以保留其他所有内容(来自两个来源)。当然我不能这样做,因为提交是在合并的路径上。

另一种方法是提取给定文件的两个版本,并使用一些 Bash 文本处理工具将它们“逐行”(作为统一的差异格式)组合成一个文件。

我可能忽略了一些微不足道的事情。聚合所有受差异影响的行(通过解决冲突或其他技巧)最简单的工作流程是什么?

4

1 回答 1

0

我有几种方法可以做到这一点。你可以做一个git revert <sha of deleted commit>. 这将创建一个与提交相反的新提交。

或者您可以git checkout <sha of deleted commit>~ -- <files changed>手动进行新的提交,添加使用git add -pto stage 的行。

根据您在文件中添加行的位置,您最终可能会遇到冲突,但这应该是相对较小的处理。

于 2021-01-07T23:56:31.103 回答