[git] GIT는 이메일없이 / 또는 이메일 만 다른 사용자로 커밋
다른 사용자로 일부 변경 사항을 커밋하려고하는데 유효한 이메일 주소가 없으며 다음 명령이 작동하지 않습니다.
git commit --author="john doe" -m "some fix"
fatal: No existing author found with 'john doe'
이메일 주소로만 커밋하려고 할 때 동일한 문제가 있습니다.
git commit --author="john@doe.com" -m "some fix"
fatal: No existing author found with 'john@doe.com'
커밋 명령에 대한 GIT 매뉴얼 페이지에서
standard A U Thor <author@example.com> format
–author 옵션의 경우.
이 형식은 어디에 정의되어 있습니까? A와 U는 무엇을 의미합니까? 사용자 이름 만 또는 이메일 만있는 다른 사용자를 어떻게 커밋합니까?
답변
년에 암시 같이 최소한의 필요한 저자의 형식은, 이 SO 답변 입니다
Name <email>
귀하의 경우 이것은 당신이 쓰고 싶다는 것을 의미합니다.
git commit --author="Name <email>" -m "whatever"
Willem D’ Haeseleer의 의견에 따라 이메일 주소가없는 경우 다음을 사용할 수 있습니다 <>
.
git commit --author="Name <>" -m "whatever"
링크 한 git commit
man 페이지 에 기록 된대로 그보다 적은 것을 제공하면 이전 커밋을 검색하고 해당 작성자의 다른 커밋을 찾는 검색 토큰으로 사용됩니다.
답변
구체적인 형식은 다음과 같습니다.
git commit --author="John Doe <john@doe.com>" -m "Impersonation is evil."
답변
그만큼
표준 AU Thor <author@example.com> 형식
다음과 같이 정의되는 것 같습니다 : (내가 아는 한, 보증이 전혀 없음)
AU Thor = 필수 사용자 이름
- 문자 분리는 공백이 허용됨을 나타내며 이니셜과 비슷할 수도 있습니다.
- 사용자 이름 뒤에 1 개의 공백이 있어야하며 추가 공백은 잘립니다.
<author@example.com> = 선택적 이메일 주소
- 항상 <> 기호 사이에 있어야합니다.
- 이메일 주소 형식이 확인되지 않았습니다. 원하는대로 입력 할 수 있습니다.
- 선택 사항, <>를 사용하여 명시 적으로 생략 할 수 있습니다.
이 정확한 구문을 사용하지 않으면 git은 기존 커밋을 검색하고 제공된 문자열이 포함 된 첫 번째 커밋을 사용합니다.
예 :
-
사용자 이름 만
이메일 주소를 명시 적으로 생략하십시오.
git commit --author="John Doe <>" -m "Impersonation is evil."
-
이메일 만
기술적으로 이것은 불가능합니다. 그러나 이메일 주소를 사용자 이름으로 입력하고 이메일 주소를 명시 적으로 생략 할 수 있습니다. 이것은 매우 유용하지 않은 것 같습니다. 이메일 주소에서 사용자 이름을 추출하여 사용자 이름으로 사용하는 것이 훨씬 더 합리적이라고 생각합니다. 하지만 필요한 경우 :
git commit --author="john@doe.com <>" -m "Impersonation is evil."
저장소를 mercurial에서 git로 변환하려고 할 때 이것을 실행했습니다. msysgit 1.7.10에서 명령을 테스트했습니다.
답변
그냥 보충 :
git commit –author = “john@doe.com”-m “사칭은 사악합니다.”
어떤 경우에는 커밋이 여전히 실패하고 다음 메시지가 표시됩니다.
*** 당신이 누군지 알려주세요.
운영
git config –global user.email “you@example.com”git config –global user.name “Your Name”
계정의 기본 ID를 설정합니다. 이 저장소에서만 ID를 설정하려면 –global을 생략하십시오.
치명적 : 이메일 주소를 자동 감지 할 수 없음 (xxxx 가져 오기)
따라서 “git config”를 실행 한 다음 “git commit”을 실행하십시오.
답변
체재
A U Thor <author@example.com>
단순히 지정해야 함을 의미합니다.
FirstName MiddleName LastName <email@example.com>
중간 이름과 성은 선택 사항 인 것 같습니다 (이메일 앞 부분은 엄격한 형식이 아님). 예를 들어 다음을 시도하십시오.
git commit --author="John <john@doe.com>" -m "some fix"
문서에서 말했듯이 :
--author=<author>
Override the commit author. Specify an explicit author using the standard
A U Thor <author@example.com> format. Otherwise <author> is assumed to
be a pattern and is used to search for an existing commit by that author
(i.e. rev-list --all -i --author=<author>); the commit author is then copied
from the first such commit found.
이 형식을 사용하지 않으면 git은 제공된 문자열을 패턴으로 취급하고 다른 커밋의 작성자 중에서 일치하는 이름을 찾으려고 시도합니다.
답변
--author
옵션이 작동하지 않습니다
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
이것은 다음을 수행합니다.
git -c user.name='A U Thor' -c user.email=author@example.com commit
답변
Git Bash를 엽니 다.
Git 사용자 이름을 설정합니다.
$ git config –global user.name “name family”Git 사용자 이름을 올바르게 설정했는지 확인하십시오.
$ git config –global user.name
이름 가족
Git 이메일 설정 :
$ git config –global user.email email@foo.com Git 이메일을 올바르게 설정했는지 확인하십시오.
$ git config –global user.email
email@foo.com