.gitconfig
通常、ディレクトリに格納されuser.home
ます。
私は会社 A のプロジェクトに取り組むために別の ID を使用し、会社 B の別の ID (主に名前/電子メール) を使用します。チェックインが名前/電子メールと一致しないように、2 つの異なる Git 構成を使用するにはどうすればよいですか?
.gitconfig
通常、ディレクトリに格納されuser.home
ます。
私は会社 A のプロジェクトに取り組むために別の ID を使用し、会社 B の別の ID (主に名前/電子メール) を使用します。チェックインが名前/電子メールと一致しないように、2 つの異なる Git 構成を使用するにはどうすればよいですか?
git config には 3 つのレベルがあります。プロジェクト、グローバル、システム。
プロジェクト固有の構成を作成します。これをプロジェクトのディレクトリの下で実行する必要があります。
$ git config user.name "John Doe"
グローバル構成を作成します。
$ git config --global user.name "John Doe"
システム構成を作成します。
$ git config --system user.name "John Doe"
ご想像のとおり、プロジェクトはグローバルおよびグローバル オーバーライド システムをオーバーライドします。
注: プロジェクト構成は、この特定のレポの 1 つの特定のコピー/クローンに対してローカルであり、レポがリモートからクリーンに再クローンされた場合は再適用する必要があります。コミット/プッシュでリモートに送信されないローカル ファイルを変更します。
リポジトリの特定のクローン内の.git/config
ファイルは、そのクローンに対してローカルです。そこに配置された設定は、その特定のプロジェクトのアクションにのみ影響します。
(デフォルトでは、 はgit config
変更しますが、 with のみが後者を変更します。).git/config
~/.gitconfig
--global
ありがとう@crea1
小さな変種:
https://git-scm.com/docs/git-config#_includesに書かれているように:
パターンが で終わる場合、
/
が**
自動的に追加されます。たとえば、パターンfoo/
は になりfoo/**
ます。つまりfoo
、再帰的に一致し、内部のすべてが一致します。
したがって、私の場合は
~/.gitconfigを使用します。
[user] # as default, personal needs
email = myalias@personal-domain.fr
name = bcag2
[includeIf "gitdir:~/workspace/"] # job needs, like workspace/* so all included projects
path = .gitconfig-job
# all others section: core, alias, log…
したがって、プロジェクト ディレクトリが my~/wokspace/
にある場合、デフォルトのユーザー設定は
~/.gitconfig-jobに置き換えられます。
[user]
name = John Smith
email = js@company.com
私は次の方法で電子メールに対してこれを行っています。
git config --global alias.hobbyprofile 'config user.email "me@example.com"'
次に、新しい作業プロジェクトを複製するgit hobbyprofile
と、実行するだけで、その電子メールを使用するように構成されます。
GIT_CONFIG
使用する必要のあるファイルを環境変数にポイントすることもできgit config
ます。指定されたファイルでGIT_CONFIG=~/.gitconfig-A git config key value
操作されます。
私は同じ船に乗っています。それらを管理するための小さな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 stash
ローカルの変更をしようとしたときにエラーが発生しました。git からのエラーは、「あなたが誰であるかを教えてください」と言い、「実行git config --global user.email "you@example.com
しgit config --global user.name "Your name"
て、アカウントのデフォルト ID を設定する」ように言いました。ただし、現在のリポジトリでのみ ID を設定するには、--globalを省略する必要があります。