git-show在提交的简单输出中重命名
我需要查看在提交时完成的文件重命名,并能够解析输出。我做了一些研究,这是我能得到的最好结果:git-show在提交的简单输出中重命名,git,Git,我需要查看在提交时完成的文件重命名,并能够解析输出。我做了一些研究,这是我能得到的最好结果: git show commit\u hash--摘要--格式=”“ 输出: rename src/{old/location => new/place}/lib.ts (100%) rename src/{old/location => new/place}/lib.types.ts (100%) create mode 100644 src/new/place/index.ts 然
git show commit\u hash--摘要--格式=”“
输出:
rename src/{old/location => new/place}/lib.ts (100%)
rename src/{old/location => new/place}/lib.types.ts (100%)
create mode 100644 src/new/place/index.ts
然而,我不想使用它,因为我认为它很难解析——我必须测试不同的文件名边缘情况,以确保路径总是被正确解析
我正在寻找类似于将src/old/location/lib.ts重命名为src/new/place/lib.ts
使用git show而不带--summary选项,打印完整的文件路径(从\n重命名为)-这将很容易解析,尽管它还显示了整个文件的差异-这是我不想要的。如果我理解正确,从oldpath重命名/重命名为newpath是diff本身的一部分
是否有任何方法可以以可靠、易于解析的方式显示提交的重命名,而无需输出差异?使用git-diff-tree(谢谢@fluffy)
git-diff-tree——查找重命名-r——名称状态——format=”“$commit\u hash
使用gitdiff
git diff——名称状态$commit\u hash~$commit\u hash
这两个命令都将输出如下内容:
R100 src/old/location/lib.ts src/new/place/lib.ts
R095 src/old/location/lib.types.ts src/new/place/lib.types.ts
A src/new/place/index.ts
git diff tree似乎是更好的选择,因为git diff版本在尝试检索第一次提交时将抛出致命错误。因为
git show
是一个陶瓷命令,而不是管道命令:。尝试使用git diff tree--find renames-r。效果很好。谢谢。我做了更多的研究,在上面的命令中添加--name status选项将使输出更加精简。似乎git diff
也可以处理这个问题。