[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 commitman 페이지 에 기록 된대로 그보다 적은 것을 제공하면 이전 커밋을 검색하고 해당 작성자의 다른 커밋을 찾는 검색 토큰으로 사용됩니다.


답변

구체적인 형식은 다음과 같습니다.

git commit --author="John Doe <john@doe.com>" -m "Impersonation is evil."


답변

그만큼

표준 AU Thor <author@example.com> 형식

다음과 같이 정의되는 것 같습니다 : (내가 아는 한, 보증이 전혀 없음)

AU Thor = 필수 사용자 이름

  • 문자 분리는 공백이 허용됨을 나타내며 이니셜과 비슷할 수도 있습니다.
  • 사용자 이름 뒤에 1 개의 공백이 있어야하며 추가 공백은 잘립니다.

<author@example.com> = 선택적 이메일 주소

  • 항상 <> 기호 사이에 있어야합니다.
  • 이메일 주소 형식이 확인되지 않았습니다. 원하는대로 입력 할 수 있습니다.
  • 선택 사항, <>를 사용하여 명시 적으로 생략 할 수 있습니다.

이 정확한 구문을 사용하지 않으면 git은 기존 커밋을 검색하고 제공된 문자열이 포함 된 첫 번째 커밋을 사용합니다.

예 :

  1. 사용자 이름 만

    이메일 주소를 명시 적으로 생략하십시오.

    git commit --author="John Doe <>" -m "Impersonation is evil."
    
  2. 이메일 만

    기술적으로 이것은 불가능합니다. 그러나 이메일 주소를 사용자 이름으로 입력하고 이메일 주소를 명시 적으로 생략 할 수 있습니다. 이것은 매우 유용하지 않은 것 같습니다. 이메일 주소에서 사용자 이름을 추출하여 사용자 이름으로 사용하는 것이 훨씬 더 합리적이라고 생각합니다. 하지만 필요한 경우 :

    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