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

时间:2012-11-19 23:57:00

标签: git

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

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

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

5 个答案:

答案 0 :(得分:47)

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

答案 1 :(得分:4)

我建议您使用tig。它是git的curses界面,非常好。

使用tig status您可以看到索引状态,并在任何文件上按 Enter ,您会看到它的差异。 h 会显示帮助菜单,但它是一个基于vi-shortcuts的界面。

我认为在任何基于debian的发行版中你都可以apt-get install,或者你可以从链接的网站上创建它。

答案 2 :(得分:4)

对于其他有用的命令,请输入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>

答案 3 :(得分:4)

//Your array let products=[{"product_name":"A","_id":"5ace995c14a759325776aab1","transactions":[{"_id":"5ad3a274ac827c165a510f99","qty":100,"price":2000},{"_id":"5ad3a274ac827c165a510f99","qty":80,"price":1500},]},{"product_name":"B","_id":"5ace995914a759325776aab0","transactions":[{"_id":"5ad3a274ac827c165a510f9b","qty":80,"price":1500}],}] //The short version let result = products.reduce((c, v) => c.concat(v.transactions.map(o =>Object.assign(o, {"product_name": v.product_name}))), []); console.log(result);中,只需按 n 直接转到下一个文件,然后再转到后一个文件,依此类推。

答案 4 :(得分:0)

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