2017-06-06 81 views
2

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

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

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

回答

1

这对我的作品

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

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

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 
+1

您不必创建空树:它总是在那里。如果您不想对幻数进行硬编码,请使用'git hash-object -t tree'来查找它的哈希值;请参阅https://stackoverflow.com/q/9765453/1256452。 – torek

+0

@torek太好了。谢谢! – ElpieKay

相关问题