新しいリポジトリを作成してコミットしようとしているとします。 Gitが私に見せた
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
最後の行も読まず、git(using)が提案した2行を実行して--global
楽しくコミットしました。
1週間後、私は他のプロジェクトに必要な完全に関連していないプロジェクトのための新しいリポジトリを作成しましたuser.email
。コミットを試みることについて二度考えることはせず、user.email
それが進み、オリジンにプッシュされました。
上記のような状況が2回も発生しましたが、これを禁止する方法がないか悩んでいますgit config --global
。
たとえば、私が実行した場合
git config --global user.email "[email protected]"
bashはコマンドを実行せずに警告を表示したいが、実行した場合
git config user.email "[email protected]"
渡されることを願っています。
可能ですか?
答え1
最も簡単な方法は、この場合(Bash用)の関数を作成することです。
git() {
for arg in "$@"; do
if [[ $arg == --global ]]; then
echo "Don't use '--global'!"
return 1
fi
done
command git "$@"
}
--global
これは存在するかどうかを確認しないことに注意してください。実際にgit
たとえば、他のオプションのオプション引数以外のオプションは、少なくともシェル以外の場所で実行される場合は重要ではありません。また、 を含めるために git エイリアスを生成すると、--global
これなどによって捕捉されません。明らかに、またはを実行するか、関数定義を取り消すことによってcommand git
保護をバイパスすることができます。/usr/bin/git