Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 显示上次x提交中更改/添加/删除的所有文件的列表_Git - Fatal编程技术网

Git 显示上次x提交中更改/添加/删除的所有文件的列表

Git 显示上次x提交中更改/添加/删除的所有文件的列表,git,Git,我想列出最近X提交中更改的所有文件 我试过: git log --name-status -10 但它也会记录其他信息,如提交id、作者、日期等。我只需要文件名。是否有实现这一目标的命令 编辑: 这个编辑应该解释为什么我的问题不像用户phd所说的那样是“如何只列出在两次提交之间更改的文件名?” 我不认为我必须解释它,很明显,这是两个完全不同的问题。我问如何创建最后x次提交的列表,而“复制”则问提交a和B之间的提交列表。我解决了这个问题。。。通过添加--oneline git log --nam

我想列出最近X提交中更改的所有文件

我试过:

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提交中更改的所有文件”,然后是“我只需要”