我创建了一个Android项目,将它添加到我的git仓库中,并将我的克隆推送给主人。后来我试着检出项目,Eclipse抱怨缺少src文件夹。我检查了我的回购和主回购和src文件夹丢失(我确定他们在那里,当我创建项目)。那么有人可以解释这里发生了什么?林新来git所以也许我错过了什么?git是否忽略空文件夹?
回答
Git不会忽略空目录。它忽略了全部目录。在Git中,目录只是通过其内容隐含存在。 emtpy目录有没有内容,因此它们不存在。
或者换句话说:Git是一个内容跟踪器。空目录不是内容。
不完全。 git有一个“树”(它对应于一个目录)的概念,树实际上有一个sha1散列,因此具有内容:blob(文件)和树(子目录)的列表。所以'git'实际上可以(理论上)记录空目录。 问题在于索引文件(暂存区):它只列出文件;并且提交是从索引文件构建的。 – hasen 2010-06-13 08:05:29
是的,git忽略空文件夹。
您可以将空的.gitignore
或.gitkeep
文件添加到任何要包含的文件夹中。
+1其他信息 – Dawnkeeper 2014-11-11 08:15:56
以下是如何做到这一步... 'find。 -depth -not -path“* target *”-not -path“./.git/*”-type d -empty -print' [...这里有很多东西...] 'find。 -depth -not -path“* target *”-not -path“./.git/*”-type d -empty -exec touch {} /。gitignore \;' – 2016-05-06 12:11:23
Git跟踪内容而不是文件。
提出了一种解决方案here。
git忽略所有目录是否为空。
当文件需要存在一个不存在的目录中时,git会在磁盘上构建一棵树时重新创建目录。否则,不会注意目录。
是的,git不会跟踪空文件夹。查找a full discussion here on StackOverflow
是,混帐忽略空文件夹,如何解决一些建议是:
- 把README文件的文件夹内,并说明该文件夹的内容,或者为什么是空的文件夹,必须保持
- 把一个叫做.gitignore的空文件放在文件夹里面
- (我最喜欢的)把一个名为.gitkeep的空文件放在里面。此解决方案是上下文,因为如果有人看到该文件将理解为什么它在文件夹中
- 1. Git忽略子文件夹
- 2. 的Git忽略不忽略指定的文件夹/文件
- 3. 忽略git的文件夹上的FTP
- 4. 避免忽略git中的文件夹
- 5. Git的清洁内忽略文件夹
- 6. git:如何判断文件或文件夹是否被提交而忽略?
- 7. Git忽略子文件夹出现在每个子文件夹
- 8. 的Git忽略不夹
- 9. 是否有任何方式批量忽略svn像git忽略文件?
- 10. 如何让git忽略vendor /下的.git文件夹?
- 11. Git忽略这种文件?
- 12. Yii2和Git忽略文件
- 13. git GUI忽略.gitignore文件?
- 14. Rails忽略GIT的文件
- 15. 设置git忽略文件
- 16. git意外忽略文件
- 17. 忽略Git .Net文件
- 18. Git忽略特定文件
- 19. git merge忽略文件夹内的文件?
- 20. jshint忽略node_modules文件夹
- 21. SVN:忽略子文件夹
- 22. 的Git忽略不忽略一个文件,但所有文件
- 23. 忽略`git log`中的git-svn文件
- 24. 如何检查文件是否被忽略git
- 25. git:忽略源文件中的文件
- 26. Git恢复忽略文件,使用git clean删除所有忽略文件-fX
- 27. TortoiseSVN - 忽略文件和文件夹
- 28. 如何判断在SVN中忽略文件是否被忽略?
- 29. 为什么git忽略my/bower_components文件夹?
- 30. 取消git push并忽略其他文件夹
可能重复[git和空文件夹](http://stackoverflow.com/questions/1767165/git-and-空文件夹) – Cascabel 2010-06-13 03:23:21