情况如下:
- 我有多个域,我在其中编写代码,例如专业和空闲时间。这些由我计算机上的不同目录表示。
- 每个域都包含多个 Git 存储库,位于其中一个域目录内的分层目录结构中。
对于每个域,我想使用不同的电子邮件地址作为作者/提交者信息的一部分。也就是说,我希望我的私有(private)地址列在我的业余项目中,我的公司地址列在我的专业项目中。
git config
知道 3 个范围:存储库、全局和系统范围。 我基本上需要的是存储库和全局之间的第四个作用域,代表一组存储库(或者只是文件系统中的一个目录)。
似乎git config
不允许这样做。当然,我可以为每个存储库设置电子邮件地址,但我想在每次设置或克隆存储库时避免此手动步骤。一种选择是编写一个包装 git init/clone 和 git config 的脚本,还有其他想法吗?
最佳答案
基于https://stackoverflow.com/a/44036640/2377961我想我找到了一种可行的方法。
首先,为“自定义范围”(例如专业范围、空闲时间等)创建不同的配置文件,并为每个范围添加所需的用户配置
# ~/all-projects.gitconfig
[user]
name = TheOperator
# ~/professional.gitconfig
[user]
email = yourname@yourwork.com
# ~/freetime.gitconfig
[user]
email = yourname@private-email.com
而不是在标准 gitconfig 中添加这样的行:
# ~/.gitconfig
[include]
path = all-projects.gitconfig
[includeIf "gitdir/i:c:/work/"]
path = professional.gitconfig
[includeIf "gitdir/i:c:/freetime/"]
path = freetime.gitconfig
gitdir/i
之后的目录应与项目组的父目录匹配。
在我的示例中,您应该存储空闲时间域的 git-repos,例如c:/freetime/my-freetime.domain/.git
关于具有目录范围的 Git 配置,包含多个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272879/