在我的~/。gitconfig,我列出我的个人电子邮件地址下[用户],因为这是我想用于Github回购。
但是,我最近也开始在工作中使用git。我公司的git回购允许我提交,但是当它发出新的变更集通知时,它说它们来自匿名,因为它不识别我的.gitconfig中的电子邮件地址——至少,这是我的理论。
是否可以在.gitconfig中指定多个[用户]定义?或者是否有其他方法覆盖特定目录的默认.gitconfig ?在我的情况下,我检查了~/worksrc/中的所有工作代码-是否有一种方法只为该目录(及其子目录)指定.gitconfig ?
本地邮箱/邮箱/ bashrc
.bashrc_local:不要跟踪这个文件,只把它放在你的工作电脑上:
export GIT_AUTHOR_EMAIL='me@work.com'
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
.bashrc:跟踪这个文件,让它在工作电脑和家用电脑上都一样:
F="$HOME/.bashrc_local"
if [ -r "$F" ]; then
. "$F"
fi
我正在使用https://github.com/technicalpickles/homesick来同步我的dotfiles。
如果只有git配置可以接受环境变量:git配置中的Shell变量扩展
Git别名(和Git配置中的部分)来拯救!
添加别名(从命令行):
git config --global alias.identity '! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; :'
然后,以集合为例
git config --global user.github.name "your github username"
git config --global user.github.email your@github.email
在一个新的或克隆的repo中,你可以运行这个命令:
git identity github
这个解决方案不是自动的,而是在全局~/中重置用户和电子邮件。Gitconfig和设置用户。useConfigOnly设为true将迫使git提醒你在每次新的或克隆的repo中手动设置它们。
git config --global --unset user.name
git config --global --unset user.email
git config --global user.useConfigOnly true