如何为目录中的每个回购设置git用户名和电子邮件?

如何为目录中的每个回购设置git用户名和电子邮件?,git,github,Git,Github,我有一台个人电脑,我也用来工作。对于工作,我必须将文件上传到大量github repo,为了使用我的工作github帐户进行上传,我需要在每个repo中传递git config user.name[USERNAME]和git config user.email[email]。我所有这些回购都位于一个单亲目录中(这不是回购)。有没有办法为父目录中的每个github回购设置git用户名和git电子邮件?您可以将父目录设置为“超级项目”以及此超级项目的所有存储库子模块。请看 配置后,您可以按如下方式循

我有一台个人电脑,我也用来工作。对于工作,我必须将文件上传到大量github repo,为了使用我的工作github帐户进行上传,我需要在每个repo中传递
git config user.name[USERNAME]
git config user.email[email]
。我所有这些回购都位于一个单亲目录中(这不是回购)。有没有办法为父目录中的每个github回购设置git用户名和git电子邮件?

您可以将父目录设置为“超级项目”以及此超级项目的所有存储库子模块。请看

配置后,您可以按如下方式循环子模块:

git submodule foreach git config user.name  "User Name"
git submodule foreach git config user.email "user@abc.com"

如果希望每个项目都有相同的名称,请全局设置:

$ git config --global --add user.name "Your name"
$ git config --global --add user.email "your_em@il.com"
如果要为不同的项目设置不同的名称和电子邮件,请执行以下操作

查找所有
.git/config
文件并将其存储在文件中:

$ for gitdirr in `find . -type d -name ".git"` ; do echo $gitdirr/config ; done > gitconfigs
查找包含
[user]
部分的所有git配置,它们可能已设置了
名称
电子邮件
,因此您必须将它们更改为您想要的:

$ grep -li "\[user\]" `cat gitconfigs` 
打开文件,检查名称是否为您想要的名称,如果不是,请更改

查找不包含用户节的文件:

$ grep -Li "\[user\]" `cat gitconfigs`
打开每个文件并添加带有项目特定值的
名称
电子邮件
键的用户节:

[user]
    name = Your name for the project
    email = Your em@il for the project

我想你最好的选择是创建一个bash脚本,它可以在子目录上迭代,并为每个repo设置名称和电子邮件。为什么不全局设置它呢?