31

有没有办法告诉 git 每次git init在某台机器上运行时自动创建/填充 .gitignore 和 .git/hooks 文件夹中的某些文件?也许某个地方的全局配置?

我们有需要全面忽略的符号链接,以及需要为每个 repo 设置的 pre-receive 和 post-receive 钩子,因此这比为每个 repo 手动设置要容易。

谢谢。

4

3 回答 3

40

您可以使用 git 模板目录来实现此目的

git config --global init.templatedir /path/to/template

然后,您可以将文件添加到文件夹/path/to/template/hooks,它们将自动复制到.git/hooks文件夹git init

您可以将所需的 .gitignore 内容放在文件夹中您命名exclude的文件中/path/to/template/info。然后它将有效地成为.gitignoregit init.

请注意,该.gitignore文件未填充exclude. git initexclude文件夹中的文件info将被复制到.git/info您的 git 存储库的文件夹中。这将导致中列出的文件模式exclude被忽略,就像.gitignore.

如果您使用的是 unix,甚至还有一个默认模板目录/usr/share/git-core/templates。在 MacOS 上,模板目录位于/usr/local/share/git-core/templates

于 2013-05-20T20:58:44.487 回答
3

.gitignore_global 在你的主目录中。如果文件不存在,请创建它。与 .gitignore 文件的语法相同。请注意您在此文件中放置的内容!

如果所有用户都希望共享同一个 .gitignore 文件,您可以在

/.SHARED_GIT_IGNORE  

然后在每个相应的用户主目录中创建指向它的软链接。

/Users/ALL_USERS/.gitignore_global -> /.SHARED_GIT_IGNORE
于 2013-05-20T20:47:00.517 回答
1

如果我们谈论的是包含 JavaScript 并使用npm的 repo ,那么您可以使用husky来设置提交挂钩。

npm install husky --save-dev

// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm test",
      "pre-push": "npm test",
      "...": "..."
    }
  }
}

这并不能直接回答原始问题,但可能与许多开发人员有关。

于 2019-04-20T10:09:27.087 回答