我错误地将Visual Studio项目从2008升级到2010,而没有先检查我以前的更改。因此,我有一个巨大的系统生成文件(10k +行),每4行更改一次。
我通常很喜欢经常检查内容,所以我通常只使用向下键来滚动我的更改。在这种情况下,滚动更改系统生成的文件需要几个生命周期。
有没有办法在完成git diff
之后跳到下一个修改过的文件,这样就不必滚动每个文件的每个更改了?
答案 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。