列出 git 中提交触及的所有文件
List all files touched by commits in git
如何列出两次提交之间某处“接触”的所有文件?我正在寻找类似于 git diff COMMIT1..COMMIT2 --name-only
但包括后来修改和还原的文件的命令。
例如,假设我有一个包含一系列提交(线性历史)的存储库:C0<-C1<-C2<-C3<-C4。提交 C1 引入了一个新文件 F,然后提交 C3 将其从存储库中删除。我正在寻找一个命令,给定 C0 和 C4,它会告诉我在两者之间的某处有一个文件 F。即使在 C0 和 C4 中没有这样的文件。因此git diff
根本不会提到文件F。
git diff ref1 ref2
只考虑给定的提交,是的,但是 git log
会找到缺少的步骤并列出每个步骤的文件,sort
会汇总这些文件:
git log --pretty="" --name-only COMMIT1..COMMIT2 | sort -u
尝试git log
找到缺失的步骤
可能是
git log --pretty=format:"" --name-only commit1..commit2
| sort -u
如何列出两次提交之间某处“接触”的所有文件?我正在寻找类似于 git diff COMMIT1..COMMIT2 --name-only
但包括后来修改和还原的文件的命令。
例如,假设我有一个包含一系列提交(线性历史)的存储库:C0<-C1<-C2<-C3<-C4。提交 C1 引入了一个新文件 F,然后提交 C3 将其从存储库中删除。我正在寻找一个命令,给定 C0 和 C4,它会告诉我在两者之间的某处有一个文件 F。即使在 C0 和 C4 中没有这样的文件。因此git diff
根本不会提到文件F。
git diff ref1 ref2
只考虑给定的提交,是的,但是 git log
会找到缺少的步骤并列出每个步骤的文件,sort
会汇总这些文件:
git log --pretty="" --name-only COMMIT1..COMMIT2 | sort -u
尝试git log
找到缺失的步骤
可能是
git log --pretty=format:"" --name-only commit1..commit2
| sort -u