git 何如通过diff 输出语义的文件。

1.我想要得到两个git版本中的差异,并且以文件形式保存,最好是能以可读性文件,json之类的形式。
2.现在我尝试了一种比较粗暴的办法,使用git status查出改变的文件,。解析出来,再通过git diff进行比较输出。想请问有什么更好一点的办法吗。

我想要的结果是这样的形式。
修改前:
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() {',
}
类似于上述的形式。

阅读 3.5k
1 个回答

git diff 的输出格式,本来就是标准的 patch 格式,按行解析,每个文件也可以得到的。

如果只是拿文件列表,加个 --name-only 参数就可以:

git diff --name-only 20ac 81d711
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题