如何列出添加到GIT存储库第一次提交的所有文件?

如何列出添加到GIT存储库第一次提交的所有文件?,git,git-commit,git-diff-tree,Git,Git Commit,Git Diff Tree,当前状态: 我正在使用git diff tree-r HASH列出特定提交中所有添加、修改和删除的文件。这项工作一直持续到今天 问题: 我想在第一次提交中列出所有添加的文件,但是将第一个哈希作为参数传递是行不通的。为什么? 主要问题: 如何获取在第一次提交中添加的所有文件的列表?git show--pretty=format:--name only这对我很有用 git show <commit|branch-name> --name-only git show--仅限名称 对于第一

当前状态: 我正在使用
git diff tree-r HASH
列出特定提交中所有添加、修改和删除的文件。这项工作一直持续到今天

问题: 我想在第一次提交中列出所有添加的文件,但是将第一个哈希作为参数传递是行不通的。为什么?

主要问题: 如何获取在第一次提交中添加的所有文件的列表?

git show--pretty=format:--name only
这对我很有用

git show <commit|branch-name> --name-only
git show--仅限名称

对于第一次提交,如果坚持使用git diff tree-r HASH,则还需要一个参数,
4B825DC642CB6EB9A060E54BF8D6928FBEE4904

4B825DC642CB6EB9A060E54BF8D6928FBEE4904
是一个空树。要创建此特殊树对象,请执行以下操作:

#inside your repo
git rm -r *
git write-tree
git reset HEAD --hard
或者更可靠的方法:

#inside your repo
git init temp
cd temp
git commit --allow-empty -m 'empty tree'
cd ..
git fetch temp/ master
rm -rf temp
现在,
git diff tree-r散列4B825DC642CB6EB9A060E54BF8D6928FBEE4904

您可以标记此树对象以便于将来使用,并将其推送到其他repo

git tag void 4b825dc642cb6eb9a060e54bf8d69288fbee4904
git diff-tree -r HASH void
git push <remote> void
git标签无效4B825DC642CB6EB9A060E54BF8D6928FBEE4904
git diff树-r散列无效
git推空

您不必创建空树:它总是在那里。如果您不想硬编码这个神奇的数字,可以使用
git hash object-t tree
查找它的哈希;看到了吗?太好了。谢谢命令
git hash object-t tree
在我的例子中不输出任何内容。根据git手册页,该文件是强制性参数,因此这一参数对我有效:
git hash object-t tree/dev/null
另请参见