Git [tips] GIT 忽略目录里的文件但不忽略目录的办法

lyfi2003 · 2012年11月11日 · 最后由 liuhui998 回复于 2012年12月07日 · 27395 次阅读

有时候我们想保留一个目录在 Git 版本库上,但不需要其中的文件。如

log -- \ 1.log 2.log

而 Git 本身不允许全空目录提交至版本库,一个最好的办法是在目录下创建一个文件:

mkdir log && touch log/.gitkeep && git add log/.gitkeep

如此,问题可较完美解决。如有更好办法请指正。

问下 创建一个.gitkeep 文件和创建一个任意文件名的文件 (比如.empty) 的区别是什么?

#2 楼 @hooopo 既然没区别 我还是喜欢起名叫.empty,一看就懂

能否指定忽略哪个文件呢,应该可以的。

不过你要忽略的是所有的文件

所有文件都起一个自己用的后缀,然后忽略这个后缀,也是一个办法

@iBachue 效果上没区别,可能 .gitkeep 更惯用点,一目了然

#7 楼 @thisiskun #3 楼 @iBachue #2 楼 @hooopo 经过实验,是没有区别的,.gitkeep 算是惯用法,正如 @thisiskun 所说。

@woaigithub 建议你回复时试一下,如果 忽略这个后缀是可以的话,根本不需要开这个话题嘛。

#8 楼 @lyfi2003 Gamfile 里面的*.gem 怎么解释呢,我也是猜的。

Very cool! That's all right! Thank you!

匿名 #11 2012年12月07日

原来我的解决方式是创建一个 README 文件,其实都一样,只要空目录里有一个文件就行

前几天知道了这个 呵呵~~ 。你找到好的 mergetool 工具了吗?我使用 git mergetool,有时候会产生.orig 文件,不小心就会 push 上去~~

我的解决办法是

echo "*" > dest_dir/.gitignore git add dest_dir/.gitignore -f git commit -m "ignore dest_dir content"

需要 登录 后方可回复, 如果你还没有账号请 注册新账号