2011-08-04 5 views
6

나는 mercurial 용 HgGit 확장을 사용하여 GitHub에서 저장소의 사본을 갖기 시작했습니다. 거의 모든 것이 잘 작동하지만 GitHub의 정보를 보면 내 사용자 이름 대신 invalid-email-address (author)이 표시됩니다. 이 경우 사용자 이름을 올바르게 표시 할 수있는 방법이 있습니까?HgGit : GitHub의 "invalid-email-address"

+0

'hgrc' /'Mercurial.ini'에서 사용자 이름의 형식은 무엇입니까? –

+0

Google 코드 (기본 레포가 있음)에 필요한 "chersanya"입니다. – aplavin

답변

1

의욕에있는 이름은 일반적으로 형식은 다음과 같습니다

Name <[email protected]> 

힘내는 보통 이름과 사용자의 전자 메일 주소로 설정됩니다.

내 생각 엔 사용자 계정에 사용자 이름에 전자 메일 주소를 지정하여 커밋의 사용자 이름이 github에서 올바르게 작동하도록해야 할 것입니다.

이 사용자 이름은 특정 웹 사이트의 사용자 이름과 동일하지 않아도되며 커밋 정보 용입니다. 그것이 동일해야 할 필요가 있다면 어떻게 다른 사람이 변경 집합을 푸시 할 수 있습니까?

예를 들어

, 내의 bitbucket 사용자 이름은 내 커밋 내 의욕 사용자 이름과 다른, 그리고 그 길을 내가 사용하는 REPO의 hgrc가에서의 bitbucket 경로에서 나의의 bitbucket 사용자 이름과 암호를 계속 내 사용자의 [auth] 섹션 .hgrc/Mercurial.ini : 여기에 암호를 퍼팅은

[auth] 
bb.prefix = bitbucket.org 
bb.schemes = https 
bb.username = myBBusername 
bb.password = myBBpassword 

(당신이하라는 메시지가 표시됩니다) 선택 사항이지만 같은 keyring 확장자로 저장하기위한 더 안전한 대안이있다.

그러나 기존 변경 집합의 사용자 이름을 변경하는 데는 조금 늦었습니다 (repo의 전체 기록을 다시 작성해야합니다).

2

"잘못된 전자 메일 주소"문제를 해결하려면 커밋에 이전의 "git author names"를 찾아서 커밋의 "작성자"와 "커미터"의 새 이름과 전자 메일 주소를 설정해야합니다. 새로 변환 된 저장소를 GutHub에 푸시합니다.

이 수정 (검색 및 바꾸기 ...)은 "git filter-branch"명령을 사용하여 수행됩니다. 여기에 사용할 준비가 된 예제가 있습니다. (지금 죽었습니까?) Mercurial to Git, solving "invalid-email-address"

[편집 됨] 위의 링크가 죽었으므로 필자는 "fix-user-email.sh"파일의 예를 제공합니다 이하. 요 볼 수있는 바와 같이, 여기에 저자 이름의 두 가지 변종은 동일한 유효 GIT 이름/이메일 쌍으로 변환되고있다 :

git filter-branch --env-filter ' 

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

if [ "$GIT_AUTHOR_NAME" = "peter.pen" ] 
then 
    cn="peterpen" 
    cm="[email protected]" 
    an="peterpen" 
    am="[email protected]" 
fi 
if [ "$GIT_AUTHOR_NAME" = "peterpen" ] 
then 
    cn="peterpen" 
    cm="[email protected]" 
    an="peterpen" 
    am="[email protected]" 
fi 

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

개인적으로 Cygwin에서 떠들썩한 파티 창에서 단계 (하여 위에서 언급 한 페이지의 단계에서 명령을 실행 실제로 나는 수정/코스 :-)의 내 인생을) 단순화하기 위해 스크립트를-실행 재와 GIT-GUI를 사용하여 결과를 확인 .../실행

당신은 GitHub의에 저장소를 테스트 할 준비가,

  1. GitHub에서 새 저장소를 만들고 아무 것도하지 않습니다!
  2. 변환 된 Repo를 Git 허브에 푸시합니다. GotHub에서 repo를 삭제하고 같은 이름의 repo를 다시 만드십시오 ...
+2

해당 링크가 죽었습니다. –

+0

GH_ACMITTER_NAME 및 GIT_COMMITTER_EMAIL (GIT_AUTHOR_NAME 및 GIT_AUTHOR_EMAIL 외에도)의 수은 저장소에서 코드 전송을 github 및 wihtout으로 업데이트했습니다. github의 커밋 페이지에서 모든 커밋에 대해 잘못된 이메일 주소를 수신합니다. –

관련 문제