단일 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은 둘 다 추적합니다.
이 저장소에만 사용할 이름을 설정하고 다음을 수행 할 수 있습니다.
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에서 복제 한 로컬 저장소의 .git / config 파일에 저장하는 것이 좋습니다. 이 작업은 실행 git config
(--global 또는 --system을 사용하여 "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
git의 다른 부분에 대해. github 서버에 repo에 대한이 수행되는 폴더를 열어 작업.
해당 작업 폴더에 .git 폴더가 있는지 확인하십시오. 이제 터미널 / 콘솔 / CommandPrompt에서 해당 폴더를 사용하는 명령 프롬프트 명령을 실행하여 해당의 사용자 이름과 이메일을 변경합니다.
이제 GitHub 서버에 액세스 할 수 있습니다.
여기를보세요 : https://help.github.com/articles/setting-your-username-in-git
또한 명령 자체에서 github 사용자 이름과 비밀번호를 사용하여 원격 저장소로 푸시하는 방법이 생각하지만 작동하지 갑자기 기 때문에 인용하지 않습니다.
IMO의 제안이이를위한 가장 좋은 방법이기 때문에 Jesse Glick의 답변을 확장 된 구현으로 여기에서 추적합니다.
.bash_profile에 아래를 추가하십시오. 활성 셸에서 git 명령을 처음 사용할 때 사용자를 설치 메시지가 표시됩니다. 그런 다음 모든 다음 실행에 대해 사용자를 기억합니다.
(분명히 입력 사용자 값을 케이스 블록의 다양한 git auther / 이름 값에 대해 정확한 원하는 이름과 이메일 주소로 상호 참조하고 필요에 따라 할당을 업데이트합니다)
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 분기)부터 새로운 옵션 {author,committer}.{name,email}
이 있습니다 user.{name,email}
.보다 구체적인 경우 에 재정의하기 위해 4 개의 새로운 구성 변수 가 도입되었습니다 .
William Hubbs (``)의 commit 39ab4d0 (2019 년 2 월 4 일)을 참조하십시오 . (Merged by Junio C Hamano -- in commit 4e021dc , 07 Mar 2019)
gitster
config
: 별도의 작성자 및 커미터 ID 제공 허용
author.email
,author.name
,committer.email
와committer.name
설정이 유사하다GIT_AUTHOR_*
및GIT_COMMITTER_*
에 대한 환경 변수,하지만git config
시스템.
이를 통해 각 저장소에 대해 별도로 설정할 수 있습니다.Git은 환경 변수를 사용하여 다른 작성자 및 커미터 정보 설정을 지원합니다. 그러나 환경 변수는 셸에 설정되므로 다른 저장소에 대해 다른 작성자 및 커미터 정보가 필요한 경우 외부 도구가 필요합니다.
이렇게
author.email
하면author.name
,committer.email
및committer.name
설정에 대한 git config에 대한 지원이 추가되어이 정보를 저장소별로 설정할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/19840921/override-configured-user-for-a-single-git-commit
'ProgramingTip' 카테고리의 다른 글
T-SQL을 사용하여 초를 HH : MM : SS로 변환하는 방법 (0) | 2020.11.06 |
---|---|
jQuery로 div를 숨기는 방법? (0) | 2020.11.06 |
C #에서`default` 키워드를 사용하는 것은 무엇입니까? (0) | 2020.11.06 |
strcpy 대 memcpy (0) | 2020.11.06 |
jQuery 애니메이션 스크롤 (0) | 2020.11.06 |