ユーザーの.gitconfigを動的に設定できますか(git config --globalの場合)?

ユーザーの.gitconfigを動的に設定できますか(git config --globalの場合)?

問題があります。独自のユーザーとしてシステムにログインします。ジョンドsudo su - rootそうすれば、行政業務を行うことができる人になります。 gitリポジトリにシステム設定ファイルがあります(これはすべてが良くなります)。しかし、これでユーザー設定が失われました(ジョンド/home/johndoe/.gitconfig文書。有効な変数を設定しようとしましたが、$GIT_CONFIGこれはグローバル構成ではなくストレージ構成のみを設定するため、私にとって重要な変数は設定されません。

$ sudo su - root
Hello johndoe. Switching your .gitconfig to /home/johndoe/.gitconfig
# git config --get user.name
John Doe
# git config --get user.email
[email protected]
# git config --global --get user.name
# git config --global --get user.email
#

私が試したトリックは次のとおりです。

$ cat .bashrc
--- snip ---

# load git config of user
LOGINUSER=$(who am i|awk '{print $1}')
if [ "$LOGINUSER" != "root" ]; then
    GITCFGFILE="/home/$LOGINUSER/.gitconfig"
    if [ -f $GITCFGFILE ]; then
        echo "Hello $LOGINUSER. Switching your .gitconfig to $GITCFGFILE"
        export GIT_CONFIG=$GITCFGFILE
    fi
fi

グローバルgitの設定へのパスを設定する方法はありますか?

ベストアンサー1

私の質問に答える:いいえ

これが私が解決した解決策です。/etc/profile.d/gitsetup.sh次の内容を含むファイルを追加しました。

[ -z "$PS1" ] && return
[ -z "$BASH_VERSION" -o -z "$PS1" ] && return
CFGFILE="/home/$(who am i|awk '{ print $1 }')/.gitconfig"
[ $USER == "root" -a -f "$CFGFILE" -a -n "$CFGFILE" ] && cat $CFGFILE > $HOME/.gitconfig

1行目と2行目でインタラクティブシェルをテストし、3行目でソースの.gitconfigパスを読み取り、ソースファイルがある場合はルート設定ファイルを置き換えます。

おすすめ記事