55

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

我通常很擅长经常检查东西,所以我通常只会使用向下键来滚动浏览我的更改。在这种情况下,滚动浏览系统生成文件的更改将需要几个生命周期。

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

4

6 回答 6

90

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

于 2012-11-19T23:59:16.060 回答
12

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

您也可以使用N返回文件。

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

于 2018-04-17T14:41:35.267 回答
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>
于 2015-08-13T18:20:32.523 回答
4

我建议你使用tig. 这是一个诅咒界面git,而且是一个非常好的界面。

您可以查看索引状态,并且通过tig status按下Enter任何文件,您会看到它的差异。h向您显示帮助菜单,但它是基于 vi 快捷方式的界面。

我认为在任何基于 debian 的发行版中,您都可以apt-get install使用它,或者您可以从链接的站点制作它。

于 2012-11-20T04:18:04.310 回答
0

另一种选择是调用update-index命令并告诉它假装一个巨大的文件没有改变。这里有一个更完整的例子。

于 2012-11-20T00:14:08.400 回答
0

我想你想要:

:n                *  Examine the (N-th) next file from the command line.

请在 的帮助中查看此内容less

                      CHANGING FILES
:e [file]            Examine a new file.
^X^V                 Same as :e.
:n                *  Examine the (N-th) next file from the command line.
:p                *  Examine the (N-th) previous file from the command line.
:x                *  Examine the first (or N-th) file from the command line.
:d                   Delete the current file from the command line list.
=  ^G  :f            Print current file name.
于 2021-12-16T17:03:29.590 回答