git上的一个riff :显示两次提交之间所有已更改的文件:我想要列出两次提交之间已更改的所有文件,即使它们现在是相同的(即更改然后再更改).
igo*_*orw 70
这是我能想到的最好的:
git log --name-only --pretty=oneline --full-index HEAD^^..HEAD | grep -vE '^[0-9a-f]{40} ' | sort | uniq
将HEAD ^^和HEAD替换为您要比较的提交.
我尝试使用git log与--name-only列出的所有文件的每个指定的人之间的承诺.--pretty=oneline使文件列表上方的部分仅包含提交SHA和消息标题.--full-index使SHA成为完整的40个字符.grep过滤掉任何看起来像SHA后跟空格的东西.除非您的文件以SHA开头,后跟空格,否则结果应该是准确的.
bry*_*mcd 46
我认为这个命令是你的答案:
git diff --stat abc123 xyz123  #where abc123 and xyz123 are SHA1 hashes of commit objects
直接从git社区书籍
如果您不想看到整个补丁,可以添加'--stat'选项,这将限制输出到已更改的文件以及描述每个文件中更改了多少行的文本图.
Llo*_*ter 11
如果只想查看以下b内容按时间顺序提交的文件名a:
git diff <a commit sha1>...<b commit sha2> --name-only # b is after a in time
如果要查看所有文件名以及从提交a到提交b的更改内容,请删除最后一个参数.
git diff <a commit sha1>...<b commit sha2> # shows file names and what changed in each file
一个例子<commit sha1>是提交ID就像675ee6860d2c273bcc6c6a0536634a107e2a3d9f.通常,前8-10位数字适用于大多数项目,但如果项目有大量提交,可能需要更多.通常我使用id的输出git log --oneline.
当你得到a ... b和b的时间晚于时间时,可以很容易地按时间顺序查看每个文件中的更改内容.
| 归档时间: | 
 | 
| 查看次数: | 40393 次 | 
| 最近记录: |