.gitkeep - 白名单还是强制添加?

时间:2018-03-14 10:28:51

标签: git gitignore

我现在使用git非常密集了一段时间,而且我说我对git如何在引擎盖下工作有很好的理解,但有一个问题是我无法解决的问题找到一个满意的答案:

"跟踪空目录的最佳方式是什么?"

我知道有关于是否应该在目录中放置.gitignore(git中的文档文件)或.gitkeep文件(似乎只是一种约定)的讨论。但那应该不是问题。

由于某些原因,我是.gitkeep的粉丝:

  • 我喜欢在一个文件中忽略所有规则,并使用.gitkeep阻止某人将忽略规则放在子目录中。
  • 对我来说,更像是说“忽略内容”,但保留此目录'但是,忽略这位导演,但是嘿,你需要它,所以不要完全忽视它#39; (虽然当你将.gitkeep ..)
  • 列入白名单时,你正在做的事情

我知道实现我想要的两种技术:

  • 忽略目录内容,将.gitkeep文件列入白名单并照常添加
  • 忽略整个目录,但强制添加.gitkeep文件。

到目前为止,我使用了白名单方法,但我现在遇到了麻烦,尤其是在团队工作时,有人希望忽略已被忽略的目录的父目录:

/some/path/to/ignore/aaa/**
!/some/path/to/ignore/aaa/.gitkeep
/some/path/to/ignore/bbb/*
/some/path/to/ignore/bbb/.gitkeep
# ... somewhere later in the file ...
/some/path/to/ignore

我知道目录aaabbb会被忽略,当我添加ccc时,我会添加忽略/白名单规则。但由于最后一条规则,我现在无法看到.gitkeep文件。

所以我想也许强制添加方法会更好。但这样做会有副作用吗?

1 个答案:

答案 0 :(得分:0)

  

也许强制添加方法会更好。但是这样做有副作用吗?

我用力加我自己,以避免必须维护.gitignore中的特定规则。

唯一的副作用是确保默认情况下.gitignore不会忽略太多,但是为此,我总是可以依靠git check-ignore来说明被忽略或未被忽略的内容:

gitcheck-ignore -v -- aFile