사용자 .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

첫 번째와 두 번째 줄에서 대화형 셸을 테스트하고 세 번째 줄에서 소스 .gitconfig 경로를 읽은 다음 소스 파일이 있으면 루트 구성 파일을 바꿉니다.

답변2

나는 동일한 어려움을 겪었고 $HOME/.gitconfig우리 버전의 git에 해당 환경 변수가 없었기 때문에 저장된 사용자 정보에서 동일한 문제를 발견했습니다.

나는 당신에게 영향을 미칠 수 있는 상황에 직면했습니다. .gitconfig두 번째 사용자가 관련되었을 때 파일이 손상되었습니다. 그리고 나(초보자 git 사용자)에게 문제가 된 내 솔루션은 여기에서 찾을 수 있습니다.

래퍼 스크립트를 사용한 git 동적 사용자 구성?

관련 정보