Git 显示上次x提交中更改/添加/删除的所有文件的列表
我想列出最近X提交中更改的所有文件 我试过:Git 显示上次x提交中更改/添加/删除的所有文件的列表,git,Git,我想列出最近X提交中更改的所有文件 我试过: git log --name-status -10 但它也会记录其他信息,如提交id、作者、日期等。我只需要文件名。是否有实现这一目标的命令 编辑: 这个编辑应该解释为什么我的问题不像用户phd所说的那样是“如何只列出在两次提交之间更改的文件名?” 我不认为我必须解释它,很明显,这是两个完全不同的问题。我问如何创建最后x次提交的列表,而“复制”则问提交a和B之间的提交列表。我解决了这个问题。。。通过添加--oneline git log --nam
git log --name-status -10
但它也会记录其他信息,如提交id、作者、日期等。我只需要文件名。是否有实现这一目标的命令
编辑:
这个编辑应该解释为什么我的问题不像用户phd所说的那样是“如何只列出在两次提交之间更改的文件名?”
我不认为我必须解释它,很明显,这是两个完全不同的问题。我问如何创建最后x次提交的列表,而“复制”则问提交a和B之间的提交列表。我解决了这个问题。。。通过添加
--oneline
git log --name-status --oneline -10
我解决了。。。通过添加
--oneline
git log --name-status --oneline -10
经典的方法是
git log --pretty=format:"" --name-only -10 | sort -u
|sort-u
有助于排序和消除重复项,而--仅名称
输出文件列表,不带状态字母。经典方法是
git log --pretty=format:"" --name-only -10 | sort -u
| sort-u
有助于排序和消除重复,而--仅名称
输出文件列表,不带状态字母。我更喜欢在这里使用git diff
:
git diff --name-only HEAD~10.. --
在Python repo中的一个标记上,这产生了:
$ git diff --name-only HEAD~10.. --
Doc/library/http.client.rst
Doc/library/tkinter.rst
Include/patchlevel.h
Lib/http/client.py
Lib/ssl.py
Lib/test/libregrtest/setup.py
Lib/test/test_httplib.py
Lib/test/test_ssl.py
Lib/test/test_syntax.py
Mac/BuildScript/resources/ReadMe.rtf
Mac/BuildScript/resources/Welcome.rtf
Misc/NEWS.d/3.7.4.rst
Misc/NEWS.d/3.7.4rc1.rst
Misc/NEWS.d/3.7.4rc2.rst
Misc/NEWS.d/next/Core and Builtins/2019-06-22-12-45-20.bpo-24214.hIiHeD.rst
Misc/NEWS.d/next/Library/2019-02-03-19-13-08.bpo-32627.b68f64.rst
Misc/NEWS.d/next/Library/2019-06-27-13-27-02.bpo-37428._wcwUd.rst
Misc/NEWS.d/next/Library/2019-06-27-20-33-50.bpo-37437.du39_A.rst
Misc/NEWS.d/next/Windows/2019-06-18-09-05-08.bpo-35360.tdqSmo.rst
Misc/NEWS.d/next/Windows/2019-06-28-08-09-08.bpo-37369.1iVpxq.rst
Modules/expat/expat_external.h
Python/compile.c
Python/peephole.c
README.rst
configure
configure.ac
如果需要状态,也可以将--name status
选项与diff
一起使用:
git diff --name-status HEAD~10.. --
下面是上面带有--name status
选项的示例:
$ git diff --name-only HEAD~10.. --
M Doc/library/http.client.rst
M Doc/library/tkinter.rst
M Include/patchlevel.h
M Lib/http/client.py
M Lib/ssl.py
M Lib/test/libregrtest/setup.py
M Lib/test/test_httplib.py
M Lib/test/test_ssl.py
M Lib/test/test_syntax.py
M Mac/BuildScript/resources/ReadMe.rtf
M Mac/BuildScript/resources/Welcome.rtf
A Misc/NEWS.d/3.7.4.rst
M Misc/NEWS.d/3.7.4rc1.rst
A Misc/NEWS.d/3.7.4rc2.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-22-12-45-20.bpo-24214.hIiHeD.rst
D Misc/NEWS.d/next/Library/2019-02-03-19-13-08.bpo-32627.b68f64.rst
D Misc/NEWS.d/next/Library/2019-06-27-13-27-02.bpo-37428._wcwUd.rst
D Misc/NEWS.d/next/Library/2019-06-27-20-33-50.bpo-37437.du39_A.rst
D Misc/NEWS.d/next/Windows/2019-06-18-09-05-08.bpo-35360.tdqSmo.rst
D Misc/NEWS.d/next/Windows/2019-06-28-08-09-08.bpo-37369.1iVpxq.rst
M Modules/expat/expat_external.h
M Python/compile.c
M Python/peephole.c
M README.rst
M configure
M configure.ac
就我个人而言,我更喜欢使用--stat
来查看有关更改的一些统计信息,如果它是由我使用的,而不是脚本:
git diff --stat HEAD~10.. --
下面是上面使用--stat
的相同示例:
$ git diff --stat HEAD~10.. --
Doc/library/http.client.rst | 5 ++
Doc/library/tkinter.rst | 4 +-
Include/patchlevel.h | 6 +-
Lib/http/client.py | 7 ++
Lib/ssl.py | 29 ++++---
Lib/test/libregrtest/setup.py | 16 ----
Lib/test/test_httplib.py | 18 +++++
Lib/test/test_ssl.py | 9 ++-
Lib/test/test_syntax.py | 14 ----
Mac/BuildScript/resources/ReadMe.rtf | 8 +-
Mac/BuildScript/resources/Welcome.rtf | 4 +-
Misc/NEWS.d/3.7.4.rst | 19 +++++
Misc/NEWS.d/3.7.4rc1.rst | 2 +-
Misc/NEWS.d/3.7.4rc2.rst | 90 ++++++++++++++++++++++
.../2019-06-22-12-45-20.bpo-24214.hIiHeD.rst | 2 -
.../2019-02-03-19-13-08.bpo-32627.b68f64.rst | 1 -
.../2019-06-27-13-27-02.bpo-37428._wcwUd.rst | 4 -
.../2019-06-27-20-33-50.bpo-37437.du39_A.rst | 1 -
.../2019-06-18-09-05-08.bpo-35360.tdqSmo.rst | 1 -
.../2019-06-28-08-09-08.bpo-37369.1iVpxq.rst | 1 -
Modules/expat/expat_external.h | 4 +
Python/compile.c | 9 ++-
Python/peephole.c | 15 +---
README.rst | 4 +-
configure | 6 ++
configure.ac | 6 ++
26 files changed, 209 insertions(+), 76 deletions(-)
(注意:输出将根据最新版本中的终端调整宽度)我更喜欢在此处使用
git diff
:
git diff --name-only HEAD~10.. --
在Python repo中的一个标记上,这产生了:
$ git diff --name-only HEAD~10.. --
Doc/library/http.client.rst
Doc/library/tkinter.rst
Include/patchlevel.h
Lib/http/client.py
Lib/ssl.py
Lib/test/libregrtest/setup.py
Lib/test/test_httplib.py
Lib/test/test_ssl.py
Lib/test/test_syntax.py
Mac/BuildScript/resources/ReadMe.rtf
Mac/BuildScript/resources/Welcome.rtf
Misc/NEWS.d/3.7.4.rst
Misc/NEWS.d/3.7.4rc1.rst
Misc/NEWS.d/3.7.4rc2.rst
Misc/NEWS.d/next/Core and Builtins/2019-06-22-12-45-20.bpo-24214.hIiHeD.rst
Misc/NEWS.d/next/Library/2019-02-03-19-13-08.bpo-32627.b68f64.rst
Misc/NEWS.d/next/Library/2019-06-27-13-27-02.bpo-37428._wcwUd.rst
Misc/NEWS.d/next/Library/2019-06-27-20-33-50.bpo-37437.du39_A.rst
Misc/NEWS.d/next/Windows/2019-06-18-09-05-08.bpo-35360.tdqSmo.rst
Misc/NEWS.d/next/Windows/2019-06-28-08-09-08.bpo-37369.1iVpxq.rst
Modules/expat/expat_external.h
Python/compile.c
Python/peephole.c
README.rst
configure
configure.ac
如果需要状态,也可以将--name status
选项与diff
一起使用:
git diff --name-status HEAD~10.. --
下面是上面带有--name status
选项的示例:
$ git diff --name-only HEAD~10.. --
M Doc/library/http.client.rst
M Doc/library/tkinter.rst
M Include/patchlevel.h
M Lib/http/client.py
M Lib/ssl.py
M Lib/test/libregrtest/setup.py
M Lib/test/test_httplib.py
M Lib/test/test_ssl.py
M Lib/test/test_syntax.py
M Mac/BuildScript/resources/ReadMe.rtf
M Mac/BuildScript/resources/Welcome.rtf
A Misc/NEWS.d/3.7.4.rst
M Misc/NEWS.d/3.7.4rc1.rst
A Misc/NEWS.d/3.7.4rc2.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-22-12-45-20.bpo-24214.hIiHeD.rst
D Misc/NEWS.d/next/Library/2019-02-03-19-13-08.bpo-32627.b68f64.rst
D Misc/NEWS.d/next/Library/2019-06-27-13-27-02.bpo-37428._wcwUd.rst
D Misc/NEWS.d/next/Library/2019-06-27-20-33-50.bpo-37437.du39_A.rst
D Misc/NEWS.d/next/Windows/2019-06-18-09-05-08.bpo-35360.tdqSmo.rst
D Misc/NEWS.d/next/Windows/2019-06-28-08-09-08.bpo-37369.1iVpxq.rst
M Modules/expat/expat_external.h
M Python/compile.c
M Python/peephole.c
M README.rst
M configure
M configure.ac
就我个人而言,我更喜欢使用--stat
来查看有关更改的一些统计信息,如果它是由我使用的,而不是脚本:
git diff --stat HEAD~10.. --
下面是上面使用--stat
的相同示例:
$ git diff --stat HEAD~10.. --
Doc/library/http.client.rst | 5 ++
Doc/library/tkinter.rst | 4 +-
Include/patchlevel.h | 6 +-
Lib/http/client.py | 7 ++
Lib/ssl.py | 29 ++++---
Lib/test/libregrtest/setup.py | 16 ----
Lib/test/test_httplib.py | 18 +++++
Lib/test/test_ssl.py | 9 ++-
Lib/test/test_syntax.py | 14 ----
Mac/BuildScript/resources/ReadMe.rtf | 8 +-
Mac/BuildScript/resources/Welcome.rtf | 4 +-
Misc/NEWS.d/3.7.4.rst | 19 +++++
Misc/NEWS.d/3.7.4rc1.rst | 2 +-
Misc/NEWS.d/3.7.4rc2.rst | 90 ++++++++++++++++++++++
.../2019-06-22-12-45-20.bpo-24214.hIiHeD.rst | 2 -
.../2019-02-03-19-13-08.bpo-32627.b68f64.rst | 1 -
.../2019-06-27-13-27-02.bpo-37428._wcwUd.rst | 4 -
.../2019-06-27-20-33-50.bpo-37437.du39_A.rst | 1 -
.../2019-06-18-09-05-08.bpo-35360.tdqSmo.rst | 1 -
.../2019-06-28-08-09-08.bpo-37369.1iVpxq.rst | 1 -
Modules/expat/expat_external.h | 4 +
Python/compile.c | 9 ++-
Python/peephole.c | 15 +---
README.rst | 4 +-
configure | 6 ++
configure.ac | 6 ++
26 files changed, 209 insertions(+), 76 deletions(-)
(注意:输出将根据最新版本中的终端调整宽度)是的,我想这取决于需要。若要将其提供给脚本或构成文件包,最好只提供列表本身,但对于人类消费,我支持您的观点。然而。。。。OP问:“我只需要文件名”,那么为什么文件状态是?为什么会有差异?为什么会有这样的统计数据?@Romanvaleri因为OP还说他通过使用
git log--name status--oneline-10
解决了这个问题。所以给出了这个答案,看起来OP实际上是在追求别的东西。无论哪种方式,git diff
在这里都很好,因为您可以获得一个文件列表,而无需通过另一个命令来获取唯一文件名列表。我认为git log
是一个不太理想的答案,IMHO。我还不知道为什么,但我比较了git log--name only--pretty=format:“origin/master..origin/releases
和git diff--name only origin/master..origin releases
和我这里的一个工作报告的输出,结果略有不同。。。我必须弄清楚原因。我想知道这是否是git log的历史简化在起作用?这可能是因为使用git diff不会显示诸如提交被还原之类的内容,因为这些更改已不再存在,而将显示所涉及的所有内容,即使最终结果是某个特定文件没有更改。是的,我想这取决于需要。若要将其提供给脚本或构成文件包,最好只提供列表本身,但对于人类消费,我支持您的观点。然而。。。。OP问:“我只需要文件名”,那么为什么文件状态是?为什么会有差异?为什么会有这样的统计数据?@Romanvaleri因为OP还说他通过使用git log--name status--oneline-10
解决了这个问题。所以给出了这个答案,看起来OP实际上是在追求别的东西。无论哪种方式,git diff
在这里都很好,因为您可以获得一个文件列表,而无需通过另一个命令来获取唯一文件名列表。我认为git log
是一个不太理想的答案,IMHO。我还不知道为什么,但我比较了git log--name only--pretty=format:“origin/master..origin/releases
和git diff--name only origin/master..origin releases
和我这里的一个工作报告的输出,结果略有不同。。。我必须弄清楚原因。我想知道这是否是git log的历史简化在起作用?这可能是因为使用git diff不会显示诸如提交被还原之类的内容,因为这些更改已不再存在,而将显示所涉及的所有内容,即使最终结果是某个特定文件没有更改。可能是@phd的重复,这是@phd的重复吗“如何仅列出在两次提交之间更改的文件名?”???Explain@Black在这一点上,我不得不站在博士一边。这是一个非常相似的需求。说出你的问题和与博士相关的问题之间的一个相关区别。有细微差别,是的,但分析和解决方案几乎是相同的。@Black你问到了”在最近的X提交中更改的所有文件“然后”我只需要文件名。我遗漏了什么?(说得清楚,我并没有把你的问题说得那么糟糕,这就是我回答的原因,这是一个好问题。)可能重复@phd,这是“如何只列出两次提交之间更改的文件名”的重复吗?" ??? Explain@Black在这一点上我不得不站在博士一边。这是一个非常相似的需求。说出你的问题和你的问题之间的一个相关区别。是的,有细微差别,但分析和解决方案几乎相同。@Black你问“最近X提交中更改的所有文件”,然后是“我只需要”