2009-05-22 5 views
63

지금까지 Git에서 읽은 가이드는 설정에 들어가서 내 이름과 전자 메일 주소를 지정해야한다고 말합니다. 그들은 정교하지 않습니다. 그들은 단지 그것을한다고 말한다.Git이 공개적으로 내 전자 메일 주소를 노출합니까?

내 전자 메일 주소가 필요한 이유는 무엇입니까? 그리고 더 중요한 것은, 예를 들어 GitHub를 통해 내 repo를 공개적으로 사용할 수있게하면 내 이메일 주소가 모든 사람 (스팸봇 포함)에게 공개됩니까?

+13

저는 이것이 프로그래밍 관련 도구에 관한 (다른 기술적 인 질문은 많지만) "프로그래밍에 관련이없는"것으로 downvoted 할 자격이 없다고 생각합니다. – Jonik

+2

GitHub now (2013 년 8 월)를 사용하면 이메일 주소를 비공개로 유지할 수 있습니다! [내 대답은 아래] (http://stackoverflow.com/a/18186072/6309)를 참조하십시오. 가짜 이메일 주소도 등록 할 수 있습니다. 가짜 이메일 주소를 등록하면 GitHub으로 전송중인 커밋에서 사용하지 않을 수 있습니다. – VonC

답변

29

힘내 도구는 이메일 주소를 사용하여 나를 식별하고 GPG 키로 태그에 서명하는 등의 작업을 수행합니다. 귀하의 이메일 주소는 귀하가 지정한 이름과 함께 귀하의 신분의 일부로 커밋 로그 등에 포함됩니다. 이 식별자 역할을하기 때문에

Author: Joe White <[email protected]> 

그래서 정보의 REPO의 사본을 누구나 볼 수 있습니다 : 예를 들어, 커밋 로그에 "저자"필드로 표시됩니다.

이메일 아마 당신이 Gitweb 또는 GitHub의 같은 서비스를 사용하지 않는 한 웹 인터페이스 (단순하지 않습니다 인터넷에서 퍼팅을 통해 REPO 사용할 수 있도록하지만, 스팸봇에 표시되지 않습니다 이).

가짜 이메일 주소를 입력하거나 빈 문자열이나 공백을 사용한다고 가정합니다. (Git이 이메일의 형식이나 유효성을 검사하지는 않습니다.) 이메일을 복제하는 사람이 유용 할 때 유용합니다. repo는 패치를 보내거나 어떤 식 으로든 연락을 취해야합니다.

+1

아마도 github, gitweb 외에도 메일 링리스트 보관자 뷰어처럼 이메일 주소를 가리는 옵션이 있어야합니다. 유효한 전자 메일 주소이지만, 'git send-email'과 같은 도구는 사실이라고 가정합니다 (예 : 패치 작성자를 자동으로 cc'ing). – araqnid

+2

주어진 다른 ID를 사용하도록 git을 구성 할 수 있습니다 user.name 및 user.email을 사용하여 GPG 키를 서명합니다. –

+0

이전 버전의 중앙 집중식 버전 제어 시스템에서는 커밋 (변경)의 작성자를 식별하는 데 "username"을 사용합니다. 이름 + 전자 메일은 좋은 신원입니다. 그것은 진짜 이메일 일 필요가 없습니다. –

4

예, 귀하의 이메일 주소 (git config user.email에 지정된대로)는 GitWeb과 같은 웹 인터페이스에 표시됩니다. 또한 이것은 아마도 스팸봇을 훨씬 뛰어 넘을지라도 모두가 저장소를 복제하여 이메일 주소를 알 수 있습니다. 아무도 진짜 이메일 주소를 사용하도록 강요하지 않습니다. Git은 아무 것도 입력되지 않으면 생성 된 이메일 주소를 자동으로 설정합니다. user.email이없는 컴퓨터에서 "Foo < foo @ daughter. (none)>"로 커밋을 보입니다.

git config --global user.email "[email protected]" 

당신은 또한 .gitconfig 파일을 편집 할 수 있습니다

6

예, 위의 답변은 일반적으로 다음 명령을 사용하는 모든 프로젝트에 대해 동일한 이메일 주소를 갖고 싶어 제외 ... 올 홈 디렉토리의 사용자 섹션에 있습니다.

전역 옵션없이 동일한 명령을 수행하여 특정 프로젝트에 대해 다른 전자 메일을 지정할 수 있습니다.

또한, 나는을 제출이 공공 장소에가는 경우에 당신이 당신의 이메일을 혼미하게 할 수있는 제안 : 예를 들어

briancolfer(at)comcast.net 

.

4

저자명, 이메일 등을 소급하여 변경할 수 있습니다. 다음을 수행하면 기록이 손상 될 수 있습니다.

#!/bin/sh 

git filter-branch --env-filter ' 

an="$GIT_AUTHOR_NAME" 
am="$GIT_AUTHOR_EMAIL" 
cn="$GIT_COMMITTER_NAME" 
cm="$GIT_COMMITTER_EMAIL" 

if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ] 
then 
    cn="Your New Committer Name" 
    cm="Your New Committer Email" 
fi 
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ] 
then 
    an="Your New Author Name" 
    am="Your New Author Email" 
fi 

export GIT_AUTHOR_NAME="$an" 
export GIT_AUTHOR_EMAIL="$am" 
export GIT_COMMITTER_NAME="$cn" 
export GIT_COMMITTER_EMAIL="$cm" 
' 

here

9

GitHub의에서 촬영 시작 Keeping your email address private라는 도움말이 있습니다 :

힘내 커밋을하기 위해 자신을 식별하도록 요구,하지만 당신은 당신의 연락처 정보를 숨길 수 있습니다 가짜 주소를 사용합니다.힘내 자체는 이메일이 유효한지 상관하지 않는다.

유용한 정보 : Git은 상관하지 않지만 커밋에 유효한 이메일 주소가 없으면 일부 프로젝트에서 기부를 허용하지 않을 수 있으므로이 지침을 따르기 전에 프로젝트 기여 정책을 조사해야합니다.

GitHub는 Git 커밋 전자 메일 주소로 스팸 신고를 보내지 않지만 걱정이된다면이 가이드를 통해 문제를 해결할 수 있습니다.

가이드에는 가짜 주소를 사용하도록 힘내 및 GitHub를 구성하는 방법이 나와 있습니다.

+0

내 GitHub 커밋 전자 메일 주소로 많은 스팸을 받고 있습니다. 나는 그것을 위해 헌신적 인 것을 사용한다. – Mitar

4

GitHub의 약 setting your email address.

특히 그것이라는 도움말 섹션이 있습니다

유용한 정보 : 당신은 유효한 이메일을 제공 할 필요가 없습니다. 스팸에 대해 우려하는 경우 가짜 이메일을 대신 사용하십시오. [email protected]은 일반적인 관행입니다.

28

업데이트 2017년 4월

페이지의 "Private emails, now more private"

GitHub의 대체 지금 잠시 동안 저자 웹 기반 커밋에 "noreply"이메일 주소를 사용하여 지원하고있다. 오늘부터 커맨드 라인을 통해 GitHub에 커밋 할 때 실수로 이메일 주소를 게시하지 않도록하는 또 다른 방법이 있습니다.

힘내 기는 자신의 이메일 주소를 사용하여 내가 작성한 커밋에 이름을 연결합니다. 커밋을 GitHub의 공용 저장소로 푸시하면 제작 메타 데이터도 게시됩니다.

실수로 이메일 주소를 게시하지 않으려면 email settings에서 "내 이메일 주소를 비공개로 유지"및 "내 이메일을 노출하는 명령 줄 푸시 차단"옵션을 선택하십시오.

https://cloud.githubusercontent.com/assets/33750/24673856/a995cb74-1947-11e7-8653-65bc604a4101.png


참고 : August, 9th 2013, you now can keep your email address private 시작!

웹 기반 GitHub 작업용이지만 커밋에는 여전히 GitHub 계정에 사용 된 것과 동일한 이메일 주소가 포함될 수 있습니다.
(git commit) 이메일을 "마스크"하려면 아래를 참조하십시오.

오늘까지 모든 웹 기반 GitHub Flow가 기본 이메일 주소를 사용했습니다. 여기에는 파일 생성, 편집 및 삭제뿐만 아니라 끌어 오기 요청 병합이 포함됩니다.

하지만 이제 이메일 주소를 비공개로 유지할 수 있습니다. 이렇게 이메일 설정 페이지를 방문하십시오 :이

email settings

이 켜져, 웹 기반 작업은 [email protected] 이메일 주소를 사용합니다.this guide 참조 : 당신이 당신의 이메일이 컴퓨터에서 만든 숨기려면


는 GitHub의 지금 레지스터 다른 이메일 주소 당신을 수 있습니다.

당신이 커밋 그런 다음

git config --global user.email "[email protected]" # Set email to slightly changed value 
git config --global user.email # Verify the setting 
# [email protected] 

반영하려는 경우 여전히 GitHub에 다시 밀어 전에 해당 지역의 repo에 (가짜) 이메일을 구성해야합니다

  • 이동을 이메일로 메뉴를 설정하면
  • 클릭
  • 는 가짜 이메일 (예 : "[email protected]")를 입력하고 클릭 "다른 이메일 주소 추가"
  • 012 "추가" 것을 3,516,

add new email address

참고 :

이 설정은 미래에 영향을 미친다는을 얻어냅니다.
저장소의 커밋 기록에서 실제 이메일 주소를 지우려면 이전 커밋을 다시 작성해야합니다. 이를 수행하는 가장 쉬운 방법은 다음과 같습니다.

git filter-branch to rewrite the repository history을 사용하고 새로운 기록을 강제로 누릅니다. GitHub의의

4

수백만 이메일 커밋 : https://www.githubarchive.org 수출 커밋 GitHub의 아카이브에서 추출 https://github.com/cirosantilli/all-github-commit-emails을.

GitHub 아카이브는 GitHub의 이벤트 API에서 데이터를 가져오고이를 더 쉽게 쿼리 할 수 ​​있도록 Google BigQuery로 시간별로 내 보냅니다.

이메일은 PushEvent 이벤트에 표시됩니다.

커밋 이메일은 GitHub의 웹 인터페이스 어디에도 표시되지 않으므로 모든 콜렉션은 API 속도 제한에 의해 제한됩니다. TODO : 처음부터 API를 통해 1M 이메일을 수집하는 데 걸리는 시간.

는 사람을 얻을

실제적인 방법은 API와

ghmail() { curl "https://api.github.com/users/$1/events/public" | grep email; } 
ghmail cirosantilli 

를 이메일을 커밋 또는 방문입니다 : https://api.github.com/users/cirosantilli/events/public

도있다 : 그것에 대해

관련 문제