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

时间:2017-06-06 15:03:48

标签: git git-commit git-diff-tree

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

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

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

3 个答案:

答案 0 :(得分:3)

这对我有用

git show <commit|branch-name> --name-only

答案 1 :(得分:1)

git show --pretty=format: --name-only <revision>

答案 2 :(得分:1)

对于第一次提交,如果您坚持git diff-tree -r HASH,则需要另外一个参数4b825dc642cb6eb9a060e54bf8d69288fbee4904

4b825dc642cb6eb9a060e54bf8d69288fbee4904是一棵空树。为了制作这个特殊的树对象:

#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 HASH 4b825dc642cb6eb9a060e54bf8d69288fbee4904有效。

您可以标记此树对象以便将来使用,并将其推送到其他存储库。

git tag void 4b825dc642cb6eb9a060e54bf8d69288fbee4904
git diff-tree -r HASH void
git push <remote> void