我知道可以设置每个仓库的配置文件,这将覆盖用户级别的配置文件(即/path/to/my/repo/.gitconfig
会覆盖~/.gitconfig
)。是否可以设置Git配置文件以覆盖给定文件夹的所有子文件夹的用户级别设置?也就是说,我有一个
|--topLevelFolder1
|--\
| ---.gitconfig_override
|--\
| ---childFolder1
| \---[...]
|--\
| ---childFolder2
| \---[...]
我希望 .gitconfig_override
中定义的设置可以应用于 childFolder1
和 childFolder2
。我这样做的动机是:我的工作笔记本电脑也用于我个人项目的业余时间。所有的工作代码都嵌套在一个文件夹中。当我推送到工作 git 仓库时,我需要使用我的工作账户 - 工作登录名和工作电子邮件。当我向我的个人(github)仓库推送时,我想使用我的真实姓名和个人电子邮件。我考虑了其他可能的解决方案(以及问题):- 为 "工作" 和 "玩耍" 创建单独的用户,根据需要设置它们的用户级别设置,并在切换上下文时作为适当的用户登录(麻烦,而且我很容易忘记切换) - 创建一个脚本来搜索 "workFolder" 中的 git 仓库,并添加/更新它们的 .gitconfig 文件以保存适当的详细信息(如果我创建一个仓库并忘记在推送之前运行脚本,我将以错误的身份推送) - “hack” git,使每次创建仓库时它都会检查文件路径,并在适当时更新 .gitconfig 文件(复杂,混乱,几乎肯定是错误的做法 - 而且,我不知道该如何着手!)
我查看了这个问题,它似乎只包含单个仓库的解决方案,而不是多个。希望有人会看到这个问题,并提供更好的解决方案。
--global
用户设置应该包含你更常用的身份信息。每个需要使用另一个身份的代码库都应该相应地设置user.name
和user.email
。 - Chrisuser.name
和user.email
设置,并设置一个cron脚本以将它们添加到任何新添加的repo中,但如果我可以在单个位置中设置它们,则会更容易地“过滤掉”任何子文件夹中的任何repo。 - scubbo