如何让git使用给定项目的正确标识(名称和电子邮件)?
我使用我的个人笔记本电脑工作和个人项目,我想使用我的工作电子邮件地址我的工作提交(gitolite)和我个人的电子邮件地址(github)。
我阅读了以下全球性或临时性的解决scheme:
git config --global user.email "bob@example.com"
-
git config user.email "bob@example.com"
-
git commit --author "Bob <bob@example.com>"
- 设置其中一个
GIT_AUTHOR_EMAIL
,GIT_COMMITTER_EMAIL
或EMAIL
环境variables
一个解决scheme是手动运行一个shell函数来设置我的环境工作或个人 ,但我很确定,我会经常忘记切换到正确的身份导致在错误的身份提交。
有没有办法将某个存储库,项目名称等绑定到一个标识(名称,电子邮件)? 人们做什么?
git config user.email "bob@example.com"
做一个回购里面的一个将设置该回购,而不是全局configuration。
看起来就像你之后的事情,除非我误读你。
使用“.git”文件夹编辑configuration文件,以维护不同的用户名和电子邮件取决于存储库
- 转到您的reposotory
- 显示隐藏文件并转到“.git”文件夹
- find“configuration”文件
- 在EOF中添加下面的行
[用户]
名字=鲍勃
电子邮件= bob@example.com
以下命令显示为此存储库设置的用户名和电子邮件地址。
git config –get user.name
git config –get user.email
例如:对于我在D:\ workspace \ eclipse \ ipchat \ .git \ config中的configuration文件
这里ipchat是我的回购名称
您需要使用下面的本地设置命令:
本地设置
git config user.email mahmoud@company.ccc git config user.name 'Mahmoud Zalt'
当地得到
git config --get user.email git config --get user.name
本地configuration文件位于项目目录: .git/config
。
全球集
git config --global user.email mahmoud@zalt.me git config --global user.name 'Mahmoud Zalt'
全球得到
git config --global --get user.email git config --global --get user.name
在主目录中的全局configuration文件: ~/.gitconfig
。
请记住引用空白等,例如:“名字姓氏”
如果你使用git config user.email "foo@example.com"
,它将被绑定到当前你所在的项目。
这是我为我的项目做的。 我克隆/初始化回购时设置适当的身份。 这是不是傻瓜(如果你忘记和推动之前,你知道你被洗掉),但它是一样好,你可以得到没有能力说git config --global user.email 'ILLEGAL_VALUE'
其实,你可以做一个非法的价值。 设置你的git config --global user.name $(perl -e 'print "x"x968;')
然后,如果您忘记设置您的非全局值,您将收到一条错误消息。
[编辑]在一个不同的系统,我不得不增加到968的数量,以“致命的:不可能的长个人标识符”失败。 同一版本的git。 奇怪。
如果你不使用--global
参数,它将只设置当前项目的variables。
从Git 2.13开始,你可以在你的gitconfig中使用includeIf
来包含一个具有不同configuration的文件,这个configuration基于你运行git命令的仓库的path。
一旦我得到它自己的工作,我会更新一个更好的例子。
https://motowilliams.com/conditional-includes-for-git-config#disqus_thread
要使用Git 2.13,您需要添加PPA(Ubuntu / Debian)或下载二进制文件并安装(Windows /其他Linux)。