【问题标题】:How can I set the git username and email for every repo in a directory?如何为目录中的每个 repo 设置 git 用户名和电子邮件?
【发布时间】:2020-09-19 02:33:31
【问题描述】:

我有一台个人电脑,也用于工作。对于工作,我必须将文件上传到大量 github 存储库,为了使用我的工作 github 帐户这样做,我需要在每个存储库中传递 git config user.name [USERNAME]git config user.email [EMAIL]。我将所有这些存储库都放在一个父目录中(这不是存储库)。有什么办法让我为这个父目录中的每个 github repo 设置 git 用户名和 git 电子邮件?

【问题讨论】:

  • 我猜你最好的办法是创建一个 bash 脚本,它遍历子目录并为每个 repo 设置名称和电子邮件。
  • 为什么不全局设置呢?

标签: git github


【解决方案1】:

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

配置完成后,您可以按如下方式遍历子模块:

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

【讨论】:

    【解决方案2】:

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

    $ 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 配置,可能它们会设置nameemail,因此您必须将它们更改为您想要的:

    $ grep -li "\[user\]" `cat gitconfigs` 
    

    打开文件并检查名称是否是您想要的,如果不是,请更改。

    查找不包含用户部分的文件:

    $ grep -Li "\[user\]" `cat gitconfigs`
    

    打开每个文件并添加带有 nameemail 键的用户部分,并带有特定于项目的值:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2012-02-10
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多