你可以在git diff中播放一个文件(或者至少是一个文件的一部分)吗?

时间:2013-01-04 15:28:28

标签: git diff git-diff git-index git-stage

在我暂存文件之前,我喜欢执行git diff检查一切正常。当我垂直遍历差异时,我会记录每个文件,这对于分段是“正常的”。如果它是一个特别长的差异,我发现很难跟踪哪些是好的,所以我倾向于在不同的时间间隔退出差异并且尽我所能。这有点乏味。

有没有办法改善这个工作流程?显然,人们不应该首先让他们的差异变大,但有时事情就不会那样(例如,改变多个文件中调用的方法的方法签名)。

例如,是否可以将当前活动git diff“会话”的“顶部”到您所在差异中的当前点的所有内容进行分段?通过这种方式,我可以在不退出差异的情况下继续进行分组并失去思路。

3 个答案:

答案 0 :(得分:2)

请尝试使用git add -p。它会显示每个差异,并询问您是否要添加它们。

答案 1 :(得分:2)

您可以使用部分添加来执行此操作:

git add -p

它将引导您完成文件的不同深度,让您按照自己的意愿进行演示或忽略。

答案 2 :(得分:0)

使用:

git add --interactive 

我在〜/ .bashrc中为它做了一个别名:

alias gi='git add --interactive'

了解如何将git add -i发挥到极致。它现在是我日常工作流程的一部分,这是我最喜欢git的东西之一! :)

其他答案隐藏了git add -i的其他优点:

   -p, --patch
       Interactively choose hunks of patch between the index and the work tree
       and add them to the index. This gives the user a chance to review the
       difference before adding modified contents to the index.

       This effectively runs add --interactive,
       but bypasses the initial command menu
       and directly jumps to the patch subcommand.
       See “Interactive mode” for details.