我犯了一個錯誤,即將Visual Studio項目從2008年升級到2010年,而沒有首先檢查我以前的更改。因此,我有一個巨大的系統生成文件(10k +行),每隔4行更改一次。跳到下一個修改後的文件在git diff?
我通常對於經常檢查東西來說相當不錯,所以我通常只需使用向下鍵來滾動瀏覽我的更改。在這種情況下,需要幾次才能滾動瀏覽系統生成文件的更改。
在完成git diff
之後,有沒有辦法跳到下一個修改文件,以便您不必滾動瀏覽每個文件的每個更改?
我犯了一個錯誤,即將Visual Studio項目從2008年升級到2010年,而沒有首先檢查我以前的更改。因此,我有一個巨大的系統生成文件(10k +行),每隔4行更改一次。跳到下一個修改後的文件在git diff?
我通常對於經常檢查東西來說相當不錯,所以我通常只需使用向下鍵來滾動瀏覽我的更改。在這種情況下,需要幾次才能滾動瀏覽系統生成文件的更改。
在完成git diff
之後,有沒有辦法跳到下一個修改文件,以便您不必滾動瀏覽每個文件的每個更改?
默認情況下,git diff
通過less
管道輸出。因此,您可以使用less
命令來搜索下一個標題。輸入/^diff
並按輸入跳到下一個文件。
我是否需要先退出當前的差異?我試着從我當前的差異中做它,它說'模式未找到' –
'/'命令搜索你正在查看的當前位置。所以如果你得到這個消息,那麼在輸出中沒有以'diff'開頭的其他行。 –
實際上,它聽起來像你*真正*想要做的是將這些(未提交的)更改分成兩個單獨的提交。做一個'git添加large.file.name'然後'git commit',然後剩下的所有更改將是*不是大的其他文件。 –
另一個選擇是調用update-index
命令,並告訴它假裝一個巨型文件沒有改變。有一個更完整的例子here。
我建議你使用tig
。這是一個詛咒界面git
,並且是一個很好的界面。
使用tig status
您可以看到索引狀態,並通過按在任何文件上輸入,您會看到它的差異。 h向您顯示幫助菜單,但它是基於vi快捷方式的界面。
我認爲在任何基於debian的發行版中,您只能使用apt-get install
它,或者您可以從鏈接的網站上創建它。
對於其他有用的命令,請輸入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>
你可以用'git的差異fileName'如果你有一個小的變化集。 – zbrunson
我想查看所有已修改的文件,只需跳過巨大的文件即可...... –