我希望我的.gitignore_global
成为多个*.gitignore
文件的头节点。为实现这一目标,我希望.gitignore_global
通过导入*.gitignore
文件及其路径,将多个*.gitignore
文件的内容附加到自身。
例如,如果git
了解source
命令,则.gitignore_global
可能如下所示:
# platform-specific .gitignore files
source ~/.gitignore/gitignore.git/Global/Linux.gitignore
source ~/.gitignore/gitignore.git/Global/OSX.gitignore
source ~/.gitignore/gitignore.git/Global/Windows.gitignore
# language-specific .gitignore files
source ~/.gitignore/gitignore.git/C++.gitignore
source ~/.gitignore/gitignore.git/Java.gitignore
# above .gitignore files are cloned from the following Github page:
# https://github.com/github/gitignore.git
不幸的是,source
无法识别git
命令。有什么建议吗?
答案 0 :(得分:1)
命令source
实际上不是命令,而是内置shell。它旨在处理原始shell进程中的shell脚本(不执行新进程)。
命令source
除了实际的shell脚本之外不能提供任何其他内容。因此,您尝试获取.gitignore*
文件不会起作用,而不是通过任何想象力。
.gitignore
机制非常简单,您可以简单地连接所有gitignore文件,这应该可行。但是,这不是真的可取。正确的解决方案是根据需要应用gitignore。
答案 1 :(得分:0)
正如@mvp所提到的,更多规则可能会减慢处理速度。虽然fstat通常比使用大量文件的repos上的忽略规则开销更痛苦。如果你在PS1命令提示符中使用__git_ps1
特别明显 - git命令开始感觉迟钝。
同时,每次动态导入单独的.gitignore_XXX文件通常都是不必要的开销。但是,一旦设置,gitignore文件往往不经常更改。因此,收益主要是出于组织目的( 很好,真实,但我们可能没有的便利)。
考虑保持gitignore_global相当轻量级,并使用本地/项目级.gitingore来获得更重,更详细的忽略模式。
提醒:遇到“为什么该文件被忽略”时,git check-ignore -v SomeFileOrPath
非常有用。
此外,我发现以下网站对于在我启动新项目/ git repo时快速生成混合gitignore文件非常有用:
https://www.gitignore.io
示例:Xcode + c ++ + gradle + java + ruby + libreoffice + osx + svn + vim
它甚至按字母顺序排列它们:)