恢复上次提交中删除的行,但保留添加的行.按行统一组合文件



我通过编辑行(像往常一样(对几个文件进行了一些更改,并进行了提交。然后假设发生了变化,我发现我实际上需要将删除的行和添加的行很好地结合在一起。如何恢复删除的行(与git show显示的红色完全一样(,同时保留添加的(绿色(行,而无需手动复制粘贴上一版本?

优选的方式是触发";像"合并"一样;上次提交和当前提交之间的冲突解决。然后我会清理标记,保留其他所有东西(来自两个来源(。当然我不能这么做,因为提交是在一个合并的路径上。

另一种方式是提取给定文件的两个版本并将它们"组合";"按行";(作为一种统一的diff格式(用一些Bash文本处理工具转换成一个单独的文件。

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

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

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

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

最新更新