鍍金池/ 問答/Linux  HTML/ git 何如通過diff 輸出語義的文件。

git 何如通過diff 輸出語義的文件。

1.我想要得到兩個git版本中的差異,并且以文件形式保存,最好是能以可讀性文件,json之類的形式。
2.現(xiàn)在我嘗試了一種比較粗暴的辦法,使用git status查出改變的文件,。解析出來,再通過git diff進行比較輸出。想請問有什么更好一點的辦法嗎。

我想要的結(jié)果是這樣的形式。
修改前:
1.js

function todo1() {
    console.log('todo');
}

2.js

function todo2() {
    console.log('todo');
}

修改后:
1.js

function todo3() {
    console.log('todo');
}

2.js

function todo4() {
    console.log('todo');
}


然后可以輸出一個文件

{
    "1.js": '--function todo1() { ++function todo3() {',
    "2.js": '--function todo2() { ++function todo4() {',
}
類似于上述的形式。

回答
編輯回答
下墜

git diff 的輸出格式,本來就是標準的 patch 格式,按行解析,每個文件也可以得到的。

如果只是拿文件列表,加個 --name-only 參數(shù)就可以:

git diff --name-only 20ac 81d711
2018年2月22日 19:12