web-dev-qa-db-ja.com

特定のプロジェクトに正しいID(名前とメール)を使用するようにgitに指示するにはどうすればよいですか?

私は仕事用と個人用の両方のプロジェクトに個人用ラップトップを使用し、仕事中のコミットには仕事用メールアドレス(gitolite)を使用し、残りは個人用メールアドレス(github)を使用します。

すべてグローバルまたは一時的な次のソリューションについて読みました。

解決策の1つは、環境をworkまたはpersonalに設定するシェル関数を手動で実行することですが、正しいIDに切り替えるのを忘れることがよくあることはよくわかります。間違った身元でコミットする。

特定のリポジトリ、プロジェクト名などをID(名前、電子メール)にバインドする方法はありますか?人々は何をしますか?

108
Martin Jambon

git config user.email "[email protected]"

リポジトリ内でこれを行うと、グローバルではなく、そのリポジトリに設定が設定されます。

私があなたを誤解していない限り、それはあなたが望んでいることのように思えます。

124
Dan Ray

以下のlocal setコマンドを使用する必要があります。

ローカルセット

git config user.email [email protected]
git config user.name 'Mahmoud Zalt'

ローカルget

git config --get user.email
git config --get user.name

ローカル設定ファイルはプロジェクトディレクトリ.git/configにあります。

グローバルセット

git config --global user.email [email protected]
git config --global user.name 'Mahmoud Zalt'

グローバル取得

git config --global --get user.email
git config --global --get user.name

ホームディレクトリ内のグローバル設定ファイル:~/.gitconfig

ブランクなどを引用することを忘れないでください。例: 'FirstName LastName'

35
Mahmoud Zalt

「.git」フォルダー内の構成ファイルを編集して、リポジトリーに応じて異なるユーザー名と電子メールを維持します

  • リポジトリに移動します
  • 非表示のファイルを表示して、「。git」フォルダーに移動します
  • 「config」ファイルを見つけます
  • EOFに以下の行を追加します

[ユーザー]

名前=ボブ

メール= [email protected]

次のコマンドは、このリポジトリに設定されているユーザー名とメールを示しています。

git config --get user.name

git config --get user.email

例:D:\ workspace\Eclipse\ipchat\.git\configの設定ファイル

ここでipchatは私のレポ名です

22
arulraj.net

git config user.email "[email protected]"を使用すると、現在のプロジェクトにバインドされます。

それが私のプロジェクトのためにやることです。リポジトリを複製/初期化するときに適切なIDを設定します。それは絶対確実ではありません(あなたがそれを理解する前にあなたが忘れてプッシュするとあなたはホースされます)が、git config --global user.email 'ILLEGAL_VALUE'と言う能力なしで得ることができるのと同じくらい良いです

実際には、不正な値を作成できます。 git config --global user.name $(Perl -e 'print "x"x968;')を設定します

その後、非グローバル値の設定を忘れると、エラーメッセージが表示されます。

[編集]別のシステムでは、「致命的:信じられないほど長い個人識別子」で失敗するためにxの数を968に増やす必要がありました。同じバージョンのgit。奇妙な。

16
Seth Robertson

--globalパラメーターを使用しない場合、現在のプロジェクトのみに変数が設定されます。

7
ismail

Git 2.13では、gitconfigでincludeIfを使用して、gitコマンドを実行しているリポジトリのパスに基づいて異なる構成のファイルを含めることができます。

Ubuntu 18.04には新しいGitが付属しているので、~/.gitconfigでこれを非常に喜んで使用しています。

[include]
  path = ~/.gitconfig.alias # I like to keep global aliases separate
  path = ~/.gitconfig.defaultusername # can maybe leave values unset/empty to get warned if a below path didn't match
# If using multiple identities can use per path user/email
# The trailing / is VERY important, git won't apply the config to subdirectories without it
[includeIf "gitdir:~/projects/Azure/"]
  path = ~/.gitconfig.Azure # user.name and user.email for Azure
[includeIf "gitdir:~/projects/gitlab/"]
  path = ~/.gitconfig.gitlab # user.name and user.email for GitLab
[includeIf "gitdir:~/projects/foss/"]
  path = ~/.gitconfig.github # user.name and user.email for GitHub

https://motowilliams.com/conditional-includes-for-git-config#disqus_thread

Git 2.13を使用するには、PPA(18.04/Debianより古いUbuntu)を追加するか、バイナリをダウンロードしてインストールする(Windows /その他のLinux)必要があります。

3
dragon788