【发布时间】:2020-08-19 13:46:58
【问题描述】:
我正在编写一个使用 git 的脚本。它需要知道所有重命名的目录和文件的旧文件路径和新文件路径。
我想做的例子:git diff --find-renames-only someGitHash someGitHash
然后我想看到一个类似的列表:
rename old/path/old-file-name.extension->new/path/new-file-name.extension
或
rename from source/README.md
rename to documentation/README.md
或者类似的东西,只要它有旧文件名和旧目录路径,新文件名和新目录路径。
到目前为止,我到处乱找,最接近的是git diff --find-renames
git diff --find-renames 给了我我想要的数据,但是每个文件的数据太多了。这绝对不是我想要处理和解析的东西。我正在使用的一些 git 存储库可能有数千个文件/文件夹重命名......
例子:
...tons more data that I do not want to parse through
rename from source/README.md
rename to documentation/README.md
...tons more data including diffs of files before and after...
this pattern continued for each file...
如何在没有额外数据的情况下列出两次 git 提交之间的所有文件和目录重命名?
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
如果
git diff <comit1> <commit2>产生了你想要的,但是太多了,把它剪掉:git diff --name-status <commit1> <commit2>;添加--diff-filter=R以仅显示R-status 结果。
标签: git rename diff file-rename git-diff