另请注意,如果您只想查看上次提交与之前提交之间的更改文件 . 这很好用: git show --name-only
2
正如artfulrobot在他的回答中所说:
git diff --name-status [SHA1 [SHA2]]
我的例子:
git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997
4b95d595812211553070046bf2ebd807c0862cca
M views/layouts/default.ctp
M webroot/css/theme.css
A webroot/img/theme/logo.png
12 回答
但是为了看到你的分支和它的共同祖先与另一个分支(比如origin / master)之间的文件发生了变化:
您只需要包含足够的SHA来识别提交 . 例如,您也可以这样做
查看第十个最新提交和第五个最新提交(或左右)之间的差异 .
就像--name-only,除了你得到一个简单的前缀,告诉你文件发生了什么(修改,删除,添加......)
类似,但提交消息后列出了提交,因此您可以看到文件何时更改 .
如果您对某些文件/文件夹发生的事情感兴趣,可以将
-- <filename> [<filename>...]
追加到git log
版本 .如果你想看看单个提交发生了什么,称之为SHA1,然后再做
git log --name-status --oneline [SHA1^..SHA1]
文件状态标志:
M修改 - 文件已被修改
C copy-edit - 已复制和修改文件
R rename-edit - 文件已重命名和修改
添加了 - 文件已添加
D已删除 - 文件已被删除
U unmerged - 合并后文件有冲突
似乎没人提到开关
--stat
:还有
--numstat
和
--shortstat
要补充@ artfulrobot的答案,如果要在两个分支之间显示已更改的文件:
注意优先顺序 . 如果您先放置较新的分支,那么它会将文件显示为已删除而不是添加 .
添加
grep
可以进一步细化:然后,这将只显示
myotherbranch
中添加的文件 .将以下别名添加到
~/.bash_profile
,然后运行,source ~/.bash_profile
;现在,只要你需要在上次提交中看到更新的文件,就可以从你的git存储库运行showfiles
.这将显示文件中的更改:
使用git log --pretty = oneline> C:\ filename.log
这将只记录一个oneline( - expand = oneline),它是更改文件的名称 . 还会将所有详细信息记录到输出文件中 .
另请注意,如果您只想查看上次提交与之前提交之间的更改文件 . 这很好用:
git show --name-only
正如artfulrobot在他的回答中所说:
我的例子:
基于
git diff --name-status
我编写了git-diffview git扩展,它呈现了两个路径之间发生变化的分层树视图 .以下适用于我:
$ git show --name-only --format=tformat: SHA1..SHA2
它也可以与单个提交一起使用:
git show --name-only --format=tformat: SHA1
这在Jenkins中很方便,你可以在其中获得一个changeSet SHA列表,并希望迭代它们以查看哪些文件已被更改 .
这类似于上面的几个答案,但是使用
tformat:
而不是format:
会删除提交之间的分隔符空间 .