1

I'd like my .gitignore_global to be the head node of several *.gitignore files. To achieve this, I'd like .gitignore_global to append contents of multiple *.gitignore files to itself by importing *.gitignore files with its path.

For example, if git understands source command, .gitignore_global may look like:

# 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

Unfortunately, the source command was not recognized by git. Any recommendations?

4

2 回答 2

1

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

除了实际的 shell 脚本之外,命令source无法获取任何内容。因此,您对源文件的尝试.gitignore*是行不通的,没有任何想象力。

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

您可以在http://github.com/github/gitignore找到非常好的通用 gitgnore 规则来源

于 2013-06-01T03:37:46.507 回答
0

正如@mvp 提到的,更多的规则会减慢处理速度。尽管 fstat 通常比具有大量文件的 repos 上的忽略规则开销要痛苦得多。如果您__git_ps1在 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

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

于 2015-12-03T21:15:11.123 回答