programing

단일 Git 커밋에 대해 구성된 사용자 재정의

newstyles 2023. 8. 12. 10:04

단일 Git 커밋에 대해 구성된 사용자 재정의

저는 이미 회사 git 서버용으로 구성된 제 업무용 노트북에서 github.com 의 프로젝트를 커밋하려고 합니다.다른 구성 파일 또는 다른 명령줄 스위치를 사용하여 다른 작성자 자격 증명을 지정할 수 있는 방법이 있습니까?

사용해 보았습니다.

--author="My Name <MyNameEmail@email.com>" 

그리고 메시지를 받았습니다.

 Committer: unknown <WorkEmail@workemail.net>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

하지만 여전히 github.com 프로젝트에 전념하기 위한 제 사용자 이름을 업데이트하지 않았습니다.제가 시도할 수 있는 다른 방법이 있을까요?

첫째, 저자가 커미셔너와 반드시 같지는 않습니다.Git tracks 둘 다.

이 리포지토리에만 사용할 이름을 설정하려면 다음 작업을 수행할 수 있습니다.

git config user.name "Your Name"
git config user.email "Your email"

▁가 없는 하세요.--global 저장소의 합니다.이렇게 하면 이 리포지토리의 구성만 설정됩니다.

명령에 만 명령을 하여 이 작업을 수행할 수 .-c옵션:

git -c "user.name=Your Name" -c "user.email=Your email" commit ...

하지만 위의 구성 옵션만 사용하는 것이 좋을 것 같습니다.

git 명령어 앞에 추가해 보십시오.

git -c user.email=email@domain.fr -c user.name='Your Name'

원샷으로는 괜찮지만 git에서 복제한 로컬 repo의 .git/config 파일에 저장하는 것이 좋습니다.이 작업은 실행을 통해 수행할 수 있습니다.git config( 또는 로 ) (no --global "repo" "repo" "시스템")을하여 설정합니다..git/config와.~/.gitconfig

변수 환 변 를 설 있 니 습 다 수도를 설정할 .GIT_COMMITTER_NAME,GIT_COMMITTER_EMAIL,GIT_AUTHOR_NAME,그리고.GIT_AUTHOR_EMAIL셸 단위 또는 명령 단위로 사용할 수 있습니다.

도망칠 수 있을 거라 믿습니다

git config user.name "Your Name"
git config user.email you@example.com

깃의 여러 부분에 대해.github 서버에 대한 repo 작업이 수행되고 있는 폴더를 열어 보십시오.

해당 작업 폴더에 .git 폴더가 있는지 확인합니다.이제 터미널/콘솔/명령 프롬프트에서 해당 폴더를 열고 위에서 지정한 명령을 실행하여 해당 폴더의 사용자 이름과 전자 메일을 변경해 보십시오.

이를 변경하면 GitHub 서버에 액세스할 수 있습니다.

여기를 보십시오. https://help.github.com/articles/setting-your-username-in-git

또한 명령어 자체에 당신의 github 사용자 이름과 비밀번호를 사용하여 원격 repo로 푸시하는 방법이 있다고 생각합니다만, 제게 맞지 않아서 견적을 내는 것이 아닙니다.

IMO가 Jesse Glick의 제안이 이를 위한 최선의 방법이기 때문에 여기서 확장된 구현으로 Jesse Glick의 답변을 후속합니다.

아래 내용을 .bash_profile에 추가합니다.활성 셸에서 git 명령을 처음 실행할 때 사용자를 묻는 메시지가 표시됩니다.그런 다음 이후의 모든 실행에 대해 사용자를 기억합니다.

(입력한 사용자 값을 대소문자 블록의 다양한 기더/이름 값에 대해 정확하게 원하는 이름과 이메일 주소로 상호 참조하고 필요에 따라 할당을 업데이트합니다.)

git() {
  echo "Running BETTER git..."
  if [ -z "$GIT_COMMITTER_NAME" ]; then
    while true; do
      read -p "Git User: " UNAME
      case $UNAME in
          user1 ) break;;
          user2 ) break;;
          * ) echo "Invalid User";;
      esac
    done
    GIT_COMMITTER_NAME=$UNAME
    export GIT_COMMITTER_NAME
    GIT_COMMITTER_EMAIL=$UNAME@domain.com
    export GIT_COMMITTER_EMAIL
    GIT_AUTHOR_NAME=$GIT_COMMITTER_NAME
    export GIT_AUTHOR_NAME
    GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL
    export GIT_AUTHOR_EMAIL
  fi
  echo "  using git user: $GIT_AUTHOR_NAME / $GIT_AUTHOR_EMAIL"
  /usr/bin/git "$@"
}

환경 변수를 설정할 수도 있습니다.GIT_COMMITTER_NAME,GIT_COMMITTER_EMAIL,GIT_AUTHOR_NAME,그리고.GIT_AUTHOR_EMAIL셸 단위 또는 명령 단위로 사용할 수 있습니다.

실제로 Git 2.22(2019년 2분기) 이후로 다음과 같은 새로운 옵션이 추가되었습니다.4개의 새로운 구성 변수{author,committer}.{name,email}을(를) 무시하기 위해 도입되었습니다.user.{name,email}좀 더 구체적인 경우에.

커밋 39ab4d0 (2019년 2월 4일) by William Hubbs (''')를 참조.
(Junio C Hamano에 의해 합병됨 -- -- 커밋 4e021dc, 2019년 3월 7일)

config별도의 작성자 및 작성자 ID 허용

author.email,author.name,committer.email그리고.committer.name설정은 다음과 유사합니다.GIT_AUTHOR_*그리고.GIT_COMMITTER_*환경 변수, 그러나git config시스템.
이렇게 하면 각 리포지토리에 대해 개별적으로 설정할 수 있습니다.

Git는 환경 변수를 사용하여 다양한 작성자 및 커밋 정보 설정을 지원합니다.그러나 환경 변수는 셸에 설정되므로 리포지토리마다 다른 인증 및 커밋 정보가 필요한 경우 외부 도구가 필요합니다.

이것은 Git 구성에 대한 지원을 추가합니다.author.email,author.name,committer.email그리고.committer.name이 정보를 저장소별로 설정할 수 있습니다.

언급URL : https://stackoverflow.com/questions/19840921/override-configured-user-for-a-single-git-commit