Jea*_*let 23 git rename file-listing
我在服务器上使用Git存储库来版本化发送到服务器的用户数据文件.我有兴趣在任何两个版本之间获取已更改文件的列表.
我知道git diff --name-only <rev1> <rev2>,但这只给了我一个文件名列表.我也对重命名和复制特别感兴趣.理想情况下,输出将是这样的:
updated: userData.txt
renamed: picture.jpg -> background.jpg
copied: song.mp3 -> song.mp3.bkp
Run Code Online (Sandbox Code Playgroud)
可能吗?--name-status似乎也没有表示重命名和副本.
Von*_*onC 28
git diff --name-status -C <rev1> <rev2>
Run Code Online (Sandbox Code Playgroud)
应该更接近你想要的.
--name-status 将显示文件名及其各自的状态:
(A|C|D|M|R|T|U|X|B)
Run Code Online (Sandbox Code Playgroud)
添加(A),复制(C),删除(D),修改(M),重命名(R),
类型(即常规文件,符号链接,子模块,...)更改(T),未
合并(U),未知(X) ),或配对破碎(B)
状态的字母
R和C"总是后跟一个分数,表示移动或复制的源和目标之间的相似率,并且是唯一如此".)
关于复制或移动的文件:
-C[<n>]
--find-copies[=<n>]
Run Code Online (Sandbox Code Playgroud)
检测副本以及重命名.如果
n指定,则其含义与-M<n>.
--find-copies-harder
Run Code Online (Sandbox Code Playgroud)
出于性能原因,默认情况下,
-C仅当在同一变更集中修改了副本的原始文件时,选项才会查找副本.
此标志使命令检查未修改的文件作为副本源的候选者.
对于大型项目来说,这是一项非常昂贵的操作,因此请谨慎使用.提供多个-C选项具有相同的效果.
git diff --stat -C
git show --stat -C
git log --stat -C
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5464 次 |
| 最近记录: |