【发布时间】:2019-08-03 15:04:36
【问题描述】:
有没有办法告诉 git 每次在某台机器上运行git init 时自动创建/填充 .gitignore 和 .git/hooks 文件夹中的某些文件?也许某个地方的全局配置?
我们有需要全面忽略的符号链接,以及需要为每个 repo 设置的 pre-receive 和 post-receive 挂钩,因此这比为每个 repo 手动设置要容易。
谢谢。
【问题讨论】:
标签: git
有没有办法告诉 git 每次在某台机器上运行git init 时自动创建/填充 .gitignore 和 .git/hooks 文件夹中的某些文件?也许某个地方的全局配置?
我们有需要全面忽略的符号链接,以及需要为每个 repo 设置的 pre-receive 和 post-receive 挂钩,因此这比为每个 repo 手动设置要容易。
谢谢。
【问题讨论】:
标签: git
您可以使用 git 模板目录实现此目的
git config --global init.templatedir /path/to/template
然后您可以将文件添加到文件夹/path/to/template/hooks,它们将自动复制到git init 上的.git/hooks 文件夹
您可以将所需的 .gitignore 内容放在文件夹 /path/to/template/info 中您命名为 exclude 的文件中。然后它将有效地成为.gitignore 文件在git init 创建的所有新存储库中。
请注意,.gitignore 文件未填充exclude 的内容。在git init 上,info文件夹中的exclude 文件将被复制到您的git 存储库的.git/info 文件夹中。这将导致exclude 中列出的文件模式被忽略,就像.gitignore 中的模式一样。
如果您使用的是 unix,甚至还有一个默认模板目录 /usr/share/git-core/templates。在 MacOS 上,模板目录位于 /usr/local/share/git-core/templates
【讨论】:
/path/to/template 中的所有 文件将添加到您项目中的.git 文件夹中。因此,请确保 .gitignore 模板本身位于一个文件夹中。
.gitignore 部分不起作用。我在/usr/share/git-core/templates/info/exclude 中添加了行,但是当我创建新存储库时,没有从该模板填充.gitignore 文件。我有git version 2.20.1
Note that开头的段落
.gitignore 添加到存储库,my answer 到另一个问题概述了您如何为 .gitattributes 执行此操作,这与你会如何为.gitignore 做这件事。唯一需要注意的是,您需要创建一个类似 git create 的别名,它同时运行 git init 并填充忽略文件。
.gitignore_global 在你的主目录中。如果文件不存在,请创建它。与 .gitignore 文件的语法相同。请注意您在此文件中放置的内容!
如果所有用户都希望共享同一个 .gitignore 文件,您可以在
中创建一个/.SHARED_GIT_IGNORE
然后在每个相应的用户主目录中创建指向它的软链接。
/Users/ALL_USERS/.gitignore_global -> /.SHARED_GIT_IGNORE
【讨论】: