如果我在Git的工作目录中对单个文件进行了一系列未提交的更改,那么有选择地选择这些更改的最简单方法是什么?
我目前的方法是“git diff”文件,然后手动查看实际文件旁边的差异。如果我想恢复一些旧代码,我可以从diff复制并粘贴到文件中。
如果可以在单个文件中查看和编辑更改,则在某些情况下会更容易。例如,是否有一个Git命令可用于将工作文件转换为类似冲突解决方案的格式 - 即使用“<<<<<<<未提交的更改周围的符号?通过这种方式,您可以选择更改,而无需从一个文件剪切和粘贴到另一个文件。
我不确定如何实现这一点,因为它不是一种三向(合并)情况。相反,它是一种双向情况,对一个文件进行一组更改(因此没有冲突)。感谢。
答案 0 :(得分:11)
您可以通过git add --patch
选择要在提交中添加的帅哥。如果要添加该更改集,这将询问您文件更改中的每个块。如果某个特定的大块对你来说太大了,你可以进一步拆分它。 git-add
,--interactive
还有另一个选项,可让您使用多个文件。
有关详情,请参阅Google搜索中的git-add
man page或this post。
答案 1 :(得分:1)
除了git add --patch之外还有git add -i:您可以将其视为git add --patch上的一层。
上的教程