programing

GIT 커밋은 이메일 없이/또는 이메일만 다른 사용자로 커밋합니다.

projobs 2023. 10. 1. 23:44
반응형

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 man 페이지에는 내가 사용할 수 있다고 나와 있습니다.

standard A U Thor <author@example.com> format

--author 옵션의 경우.

이 형식은 어디에서 정의됩니까? A와 U는 무엇의 약자입니까? 사용자 이름 또는 이메일만으로 다른 사용자를 커밋하려면 어떻게 해야 합니까?

SO 답변에서 암시한 대로 필요한 최소한의 작성자 형식은 다음과 같습니다.

Name <email>

당신의 경우, 당신이 글을 쓰고 싶어하는 것을 의미합니다.

git commit --author="Name <email>" -m "whatever"

, , 를 할 수 있습니다.<>:

git commit --author="Name <>" -m "whatever"

링크한 맨 페이지에 쓰여 있듯이, 그 이하의 것을 제공하면 이전 커밋을 검색하고 작성자의 다른 커밋을 검색하는 검색 토큰으로 사용됩니다.

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

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

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

다음과 같이 정의되는 것 같습니다. (제가 알기로는 보증이 전혀 없는 것으로 알고 있습니다.

A U 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." 
    

저장소를 수은에서 깃으로 전환하려고 할 때 우연히 마주쳤습니다.msysgit 1.7.10에서 명령어를 테스트했습니다.

--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 개인을 구분하기 위해 Git 2.13은 디렉토리별 구성을 지원합니다.더 이상 이 옵션으로 포장할 필요가 없습니다.

보충하기만 하면 됩니다.

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을 생략합니다.

fatal: 전자 메일 주소를 자동 detect할 수 없음(xxxxxxx를 받았습니다)

그러니까 그냥 "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은 제공된 문자열을 패턴으로 취급하고 다른 커밋의 작성자 간에 일치하는 이름을 찾도록 시도합니다.

git -c "user.name={{ name }}" -c "user.email={{ email }}" commit -m "{{ message }}"

여기서 {{}}는 값을 입력했음을 나타냅니다.

깃 배시를 엽니다.

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

그것은 모두 당신이 어떻게 행동하느냐에 달려있습니다.

예를 들어,

git commit -am "Some message"

당신의 것을 사용할 것입니다.~\.gitconfig사용자 이름.즉,됩니다와

[user]
    email = someemail@gmail.com

그것이 당신이 바꾸고 싶은 이메일일 것입니다.Bitbucket이나 Github 등을 통해 pull request를 하는 경우.로그인한 사람이 누구든 당신이 될 겁니다

실제 이메일 주소를 숨기는 것이 우려되는 경우 대안이 될 수 있습니다.Github에 커밋하는 경우 사용할 수 있는 실제 이메일이 필요 없습니다.<username>@users.noreply.github.com

Github 사용 여부에 관계없이, 당신은 아마 먼저 커밋 세부 정보를 변경하고 싶을 것입니다 (윈도우 사용에서).SET GIT_...)

GIT_COMMITTER_NAME='username' 
GIT_COMMITTER_EMAIL='username@users.noreply.github.com'

그런 다음 작성자를 설정합니다.

git commit --author="username <username@users.noreply.github.com>"

https://help.github.com/articles/keeping-your-email-address-private

언급URL : https://stackoverflow.com/questions/11579311/git-commit-as-different-user-without-email-or-only-email

반응형