我在存储库中有一堆提交。我想看到两次提交之间更改的文件列表-从SHA1到SHA2。
我应该使用什么命令?
我在存储库中有一堆提交。我想看到两次提交之间更改的文件列表-从SHA1到SHA2。
我应该使用什么命令?
当前回答
对于只需要关注Java文件的人来说,这是我的解决方案:
git diff --name-status SHA1 SHA2 | grep '\.java$'
其他回答
这将显示文件中的更改:
git diff --word-diff SHA1 SHA2
但是,如果看到文件在您的分支和它的共同祖先与另一个分支之间发生了更改(例如,origin/master):
git diff --name-only `git merge-base origin/master HEAD`
以前的每一个答案最大的问题是,如果你想使用你试图从存储库中获取的信息,你会被送入一个寻呼机,这是非常令人讨厌的。特别是如果你是一个开发人员,宁愿学习你应该开发的应用程序的业务逻辑,而不是学习vim命令。
使用--没有寻呼机可以解决这个问题。
git --no-pager diff --name-only sha1 sha2
Use
git log --pretty=oneline > C:\filename.log
它将只记录一行(--prey=oneline),这是更改文件的名称。它还会将所有详细信息记录到输出文件中。
git diff --name-status [SHA1 [SHA2]]
类似于--name,只是你得到一个简单的前缀,告诉你文件发生了什么(修改、删除、添加…)
git log --name-status --oneline [SHA1..SHA2]
类似,但提交列在提交消息之后,因此您可以看到文件何时更改。
如果您对某些文件/文件夹发生的情况感兴趣,可以在git日志版本中添加--<filename>[<filename>…]。如果您想查看一次提交发生了什么,请将其称为SHA1,然后执行git log--名称状态--单行[SHA1^..SHA1]
文件状态标志:
Flag | Name | Meaning |
---|---|---|
M |
modified | File has been modified |
C |
copy-edit | File has been copied and modified |
R |
rename-edit | File has been renamed and modified |
A |
added | File has been added |
D |
deleted | File has been deleted |
U |
unmerged | File has conflicts after a merge |