.gitconfig通常存储在用户中。主目录。
我使用不同的身份为a公司工作,为B公司工作(主要是名称/电子邮件)。如何使用两种不同的Git配置,使我的签入与名称/电子邮件不一致?
.gitconfig通常存储在用户中。主目录。
我使用不同的身份为a公司工作,为B公司工作(主要是名称/电子邮件)。如何使用两种不同的Git配置,使我的签入与名称/电子邮件不一致?
当前回答
我有一个错误时,试图得到藏匿我的本地更改。来自git的错误说“请告诉我你是谁”,然后告诉我“运行git配置—全局用户”。email“you@example.com和git config——global user.name“你的名字”来设置你帐户的默认身份。”但是,必须使用省略——global来仅在当前存储库中设置标识。
其他回答
存储库的特定克隆中的.git/config文件是该克隆的本地文件。放置在那里的任何设置只会影响该特定项目的操作。
(默认情况下,git配置修改的是.git/config,而不是~/。Gitconfig -仅使用——global会修改后者。)
你也可以将环境变量GIT_CONFIG指向一个git配置应该使用的文件。与GIT_CONFIG = ~ /。git配置-指定文件的git配置键值。
我在我的电子邮件中这样做的方式如下:
git config --global alias.hobbyprofile 'config user.email "me@example.com"'
然后当我克隆一个新的工作项目时,我只需要运行git hobbyprofile,它将被配置为使用该电子邮件。
我也有同感。我写了一个bash脚本来管理它们。 https://github.com/thejeffreystone/setgit
#!/bin/bash
# setgit
#
# Script to manage multiple global gitconfigs
#
# To save your current .gitconfig to .gitconfig-this just run:
# setgit -s this
#
# To load .gitconfig-this to .gitconfig it run:
# setgit -f this
#
#
#
# Author: Jeffrey Stone <thejeffreystone@gmail.com>
usage(){
echo "$(basename $0) [-h] [-f name]"
echo ""
echo "where:"
echo " -h Show Help Text"
echo " -f Load the .gitconfig file based on option passed"
echo ""
exit 1
}
if [ $# -lt 1 ]
then
usage
exit
fi
while getopts ':hf:' option; do
case "$option" in
h) usage
exit
;;
f) echo "Loading .gitconfig from .gitconfig-$OPTARG"
cat ~/.gitconfig-$OPTARG > ~/.gitconfig
;;
*) printf "illegal option: '%s'\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
esac
done
我有一个错误时,试图得到藏匿我的本地更改。来自git的错误说“请告诉我你是谁”,然后告诉我“运行git配置—全局用户”。email“you@example.com和git config——global user.name“你的名字”来设置你帐户的默认身份。”但是,必须使用省略——global来仅在当前存储库中设置标识。