【发布时间】:2014-02-13 23:29:12
【问题描述】:
我知道可以设置覆盖用户级配置的 per-repo 配置(即 /path/to/my/repo/.gitconfig 覆盖 ~/.gitconfig)。是否可以设置 git configs 来覆盖给定文件夹的所有子文件夹的用户级设置?也就是说,我有
|--topLevelFolder1
|--\
| ---.gitconfig_override
|--\
| ---childFolder1
| \---[...]
|--\
| ---childFolder2
| \---[...]
我希望.gitconfig_override 中定义的设置适用于childFolder1 和childFolder2。
我这样做的动机如下:我有一台工作笔记本电脑,我也会在业余时间用于个人项目。我所有的工作代码都嵌套在一个文件夹中。当我推动工作 git repos 时,我需要使用我的工作角色 - 工作登录而不是姓名,以及工作电子邮件。当我推送到我自己的个人 (github) 存储库时,我想用我的真实姓名和个人电子邮件这样做。
我想到的其他可能的解决方案(和问题):
- 为“工作”和“娱乐”创建单独的用户,适当地设置他们的用户级别设置,并在我切换上下文时以适当的用户身份登录(麻烦,而且我很容易忘记切换)
- 创建一个在“workFolder”中搜索 git repos 的脚本,并添加/更新它们的 .gitconfig 文件以保存适当的详细信息(如果我创建了一个 repo 并忘记在推送之前运行脚本,我将推送为错误人)
- “hack” git 这样每次它创建一个 repo 时,它都会检查文件路径,并在适当的情况下更新 .gitconfig 文件(复杂、混乱,而且几乎可以肯定是错误的做法——另外,我不会没有第一个线索如何去做!)
我检查了this question,它似乎只包含单个 repos 的解决方案,而不是多个。希望错过这个问题的人会看到这个问题!
【问题讨论】:
-
你会和“work you”和“personal you”在同一个存储库上工作吗?如果不是,您链接到的问题包含我要给出的答案。您的
--global用户设置应包含您更多使用的任何身份。应该使用另一个身份的每个存储库都应该相应地设置user.name和user.email。 -
我永远不会在同一个仓库中与两个不同的用户一起工作——每个仓库要么是“工作”,要么是“家”——但问题在于(至少对于工作而言)我有 35 个 repos 之类的东西,并且会定期添加。我可以在每个现有的 repos 中添加
user.name和user.email设置,并设置一个 cron 脚本将它们添加到任何新添加的 repos 中,但如果我可以将它们设置在一个地方会容易得多“过滤”到子文件夹中的任何存储库。 -
@scubbo,请查看答案,因为 Git 已更改,可能会为您的问题提供不同的答案。
-
感谢您的提醒!我刚刚更改了接受的答案。
标签: git