如何将多个* .gitignore文件同步到.gitignore_global?

时间:2013-06-01 03:25:18

标签: git gitignore

我希望我的.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命令。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

命令source实际上不是命令,而是内置shell。它旨在处理原始shell进程中的shell脚本(不执行新进程)。

命令source除了实际的shell脚本之外不能提供任何其他内容。因此,您尝试获取.gitignore*文件不会起作用,而不是通过任何想象力。

.gitignore机制非常简单,您可以简单地连接所有gitignore文件,这应该可行。但是,这不是真的可取。正确的解决方案是根据需要应用gitignore。

您可以在http://github.com/github/gitignore

找到非常好的常见gitgnore规则来源

答案 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

它甚至按字母顺序排列它们:)