2010-09-03 127 views
0

美好的一天 我需要找到一種方法來查找git合併後報告的更改文件的完整路徑。 如果路徑太長,Git通常會放置一個.../rest/of/path /到/ the /文件。 但我試圖解析它,並根據文件的位置我想能夠在構建(寫建築腳本)時決定一個合適的動作 有沒有我缺少的標誌,我閱讀手冊頁和似乎無法找到任何東西。 感謝您的幫助。git兼併文件的完整路徑

回答

1

我在這裏假設你剛剛完成了合併,因此我可以將它稱爲HEAD

git merge的自動輸出本質上是git diff-tree --stat -c HEAD。 (或者可能是git diff --stat HEAD^ HEAD;他們幾乎是一樣的,這是一個在git源代碼中的調用,所以其中的六個,其他六個)。--stat選項爲您提供了「漂亮」的輸出。如果你想獲得完整信息,最快的方法是:

git diff-tree -c --numstat HEAD 
# or git diff --numstat HEAD^ HEAD 

第一列是添加行的數量,二是刪除的行數,第三個是完整的文件名。

如果合併是歷史中的一種方式,則只需將HEAD替換爲適當的SHA1即可。如果合併正在進行中,並且您正在檢查合併,則您要提交(在解決衝突後說),請使用git diff --numstat --cached

+0

謝謝你,我剛回到這裏評論說我找到了--numstat :)。其他我需要的東西,我可以先忽略數字。 非常感謝您的幫助。 – 2010-09-03 20:14:52