Git 사용자 이름과 이메일 주소가 gitconfig 파일에 자동으로 삽입되는 것을 방지하는 방법은 무엇입니까?

Git 사용자 이름과 이메일 주소가 gitconfig 파일에 자동으로 삽입되는 것을 방지하는 방법은 무엇입니까?

저는 Linux 세계와 git을 처음 접했습니다. 최근에 "dotfiles"라는 Git 저장소를 생성하여 도트 파일을 관리하기 위한 버전 제어를 설정했습니다. 그러나 변경 사항을 커밋할 때마다 Git 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 그런 다음 내 사용자 이름과 이메일 주소가 .gitconfig해당 섹션 user아래의 파일 에 자동으로 삽입됩니다. 지금은 Git 'dotfiles' 저장소가 비공개이므로 괜찮지만 나중에는 이 저장소를 공개로 설정할 수도 있습니다. 그렇다면 내 사용자 이름과 이메일 주소가 표시되는 것을 원하지 않습니다 .gitconfig. 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

나는 알아 차렸다마티아스 베인스 .gitconfig프로필은(는) 부품이 없으며 user다음과 같은 commit부품으로 구성됩니다.

[commit]

    # https://help.github.com/articles/signing-commits-using-gpg/
    gpgsign = true

나는 또한아니쉬 아타예의 .gitconfig프로필, commit섹션 은 없지만 user섹션에는 다음이 포함됩니다.

[user]
    useConfigOnly = true

답변1

Git에서는 커밋하려면 이름과 이메일 주소가 필요합니다. 이 값은 모든 커밋에 삽입되며 null이 아니어야 하고 몇 가지 기본 유효성 검사를 충족해야 합니다. 관례상 이 이름은 개인 이름이지만, Git 자체에서는 이를 요구하지 않습니다. 단, 여러분이 기여하는 프로젝트에서는 필요할 수 있습니다.

~/.gitconfig그러나 구성 파일에서도 이를 제공할 필요는 전혀 없습니다. Git은 먼저 환경 변수 GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, 에서 존재 여부를 GIT_COMMITTER_NAME읽습니다 . 그러나 이는 일반적으로 를 사용할 때 다른 기술을 사용하려고 할 때 값을 덮어쓰기 GIT_COMMITTER_EMAIL때문에 좋은 생각이 아닙니다 .git commit --amend

git-commit(1)기타 옵션 설명:

이러한 환경 변수 중 일부가 설정되지 않은 경우 구성 항목에서 정보를 가져오고 user.name, user.email존재하지 않는 경우 환경 변수에서 EMAIL, 설정되지 않은 경우 발신에 사용되는 시스템 사용자 이름 및 호스트에서 정보를 가져옵니다. 파일 이름( /etc/mailname파일이 존재하지 않는 경우 정규화된 호스트 이름에서 파일을 가져와 해당 호스트 이름으로 대체)

author.name및 해당 이메일 옵션이 설정된 경우 committer.nameuser.name 및 user.email을 재정의하고 환경 변수로 재정의합니다.

일반적인 사용법은 설정 user.nameuser.email변수뿐입니다. 더 복잡한 사용 사례에는 다른 옵션이 제공됩니다.

나는 보통 내 이름을 남겨두고 user.nameEMAIL구성에서 적절하게 설정합니다. 일부 프로그램(특히 Homebrew)은 EMAIL환경에 따라 손상되고 필터링되므로 모든 경우에 작동하지는 않습니다. 시스템 GECOS 필드와 메일 설정이 정확하다고 의존하는 것은 좋은 생각이 아닙니다. 그렇지 않은 경우가 많기 때문입니다.

~/.config/git/config마지막으로, 일반적으로 기본 파일에 저장하고 싶지 않은 값을 저장 ~/.gitconfig하거나 도트 파일 저장소에 체크인하기 위해 다른 구성 파일을 사용할 수 있습니다 . commit.gpgsign내가 사용하는 모든 시스템에 개인 키가 있고 커밋에 서명할 수 있는 것은 아니기 때문에 서명할 수 있는지 여부와 사용하는 키는 시스템에 따라 다릅니다 .

관련 정보