跳到git diff中的下一个修改过的文件?

Abe*_*ler 33 git

我错误地将Visual Studio项目从2008升级到2010而没有先检查我以前的更改.因此,我有一个巨大的系统生成文件(10k +行),每4行更改一次.

我通常非常擅长检查内容,所以我通常只使用向下键来滚动我的更改.在这种情况下,滚动更改系统生成的文件需要几个生命周期.

有没有办法在完成后跳到下一个修改过的文件,git diff这样就不必滚动每个文件的每个更改?

Gre*_*ill 58

默认情况下,git diff通过管道输出less.因此,您可以使用less命令搜索下一个标题.输入/^diff并按Enter以跳至下一个文件.

  • 然后,使用`n`进入下一次出现的`^ diff`,并使用前一个出现的`N`.这应该有效,直到使用带有`/`的另一个搜索模式. (4认同)
  • 我需要先退出我当前的差异吗?我尝试从我当前的差异中进行操作,它说“找不到模式” (2认同)
  • `/` 命令从您正在查看的当前位置开始搜索。因此,如果您收到该消息,则输出中不再有以“diff”开头的行。 (2认同)

Smi*_*hee 10

在 中git diff,只需点击n即可直接进入下一个文件,然后再次进入下一个文件,依此类推。

您还可以使用N返回一个文件。

(要使这些命令起作用,您需要先键入/^diff并按Enter,如本答案中所述。)

  • 按“n”查找下一个搜索词。您需要搜索文件头的公共部分才能使其工作。 (2认同)

Nik*_* G. 7

对于其他有用的命令,请键入h帮助(在中时git diff,在中时less)。

特别是:

                           JUMPING

  g  <  ESC-<       *  Go to first line in file (or line N).
  G  >  ESC->       *  Go to last line in file (or line N).
  p  %              *  Go to beginning of file (or N percent into file).
  t                 *  Go to the (N-th) next tag.
  T                 *  Go to the (N-th) previous tag.
  {  (  [           *  Find close bracket } ) ].
  }  )  ]           *  Find open bracket { ( [.
  ESC-^F <c1> <c2>  *  Find close bracket <c2>.
  ESC-^B <c1> <c2>  *  Find open bracket <c1>
Run Code Online (Sandbox Code Playgroud)