2016-01-04 30 views
4

配置我的全球~/.gitconfig性能user.nameuser.email这样的:使用基于远程克隆网址混帐配置不同user.email和user.name

git config --global user.email "[email protected]" 
git config --global user.name "mkobit" 

这是默认的配置我想在个人项目中,开源的东西,等工作

当我在一个项目从一个特定的领域,比如企业领域的工作,我将其配置为每个仓库时,我会克隆它,以便它使用不同的user.name/user.email

git clone ssh://[email protected]:1234/groupA/projectA.git 
cd projectA 
git config user.email "[email protected]" 
git config user.name "m.kobit" 

一个不错的选择。将设置克隆库的这些类型的别名:

git config --global alias.clonecorp 'clone \ 
     -c user.name="m.kobit" -c user.email="[email protected]"' 
git clonecorp ssh://[email protected]:1234/groupA/projectA.git 

这两个很容易出错,因为他们都取决于我是否聪明,并遵循正确的步骤。有证据表明,这对我来说有些时候是有保证的。

是否有配置GIT中,使得从特定域(mycorp.com在本例中)的存储库将被配置以某种方式的方法吗?

+0

我一直在寻找完全一样的东西。这真是令人失望。特别是如果您在开发或自动构建环境中维护相同回购的多个副本或定期删除/重新克隆。类似于管理管理不同的ssh_ids的东西可以。 –

回答

1

Git 2.13的发布引入了一项名为的功能,条件包括。在2.13中,唯一支持的配置是文件系统路径。在这种情况下很容易使用,因为我已经将它们分开了。

提供的发行说明的例子是:

您可以配置两个条件包括在你的home目录的~/.gitconfig文件:

[includeIf "gitdir:~/work/"] 
    path = .gitconfig-work 
[includeIf "gitdir:~/play/"] 
    path = .gitconfig-play 

现在你可以把你想要到这些文件的任何选项:

$ cat ~/.gitconfig-work 
[user] 
name = Serious Q. Programmer 
email = [email protected] 

$ cat ~/.gitconfig-play 
[user] 
name = Random J. Hacker 
email = [email protected] 

老答案

Git 2.8,全局配置user.useconfigonly已补充说,坚持用户设置自己的user.emailuser.name犯下之前设置。下面是链接的博客文章中的有关内容通过Github上:

但是,如果说,你想让Git使用一个电子邮件地址,你的开源项目和一个不同的工作项目,你无疑在没有首先在该存储库中设置您的电子邮件地址的情况下犯下了提交到新的Git存储库的错误。在这种情况下,Git会发出警告,但它会使用它从本地系统主机名中猜出的电子邮件地址创建提交。如果你想为不同的项目做一些像不同地址一样复杂的东西,这几乎肯定不是你想要的。

现在你可以告诉混帐不要去猜测,而是坚持让你设置user.name和用户。电子邮件明确之前,它会让你承诺:

git config --global user.useconfigonly true 

这不能解决自动配置基于特定克隆的URL,但确实使这一过程有点不易出错通过在开始强制配置。

0

我发现自己处于同样的状况:意识到我在推送到非公司仓库后立即使用公司电子邮件进行提交......因此,我编写了一个小型git-hook,您可能也会发现它有用:https://github.com/DrVanScott/git-clone-init

基于可配置的模式文件,它将初始化git clone上的user.email和user.name。

相关问题