GitHub 커밋은 '참여'캘린더에 기록되지 않습니다.


94

나는 GitHub내 리눅스 셸에서 내 저장소에 지속적으로 커밋을 해왔으며 웹 사이트에 제대로 표시됩니다. 유일한 문제는 "참여"섹션에 최근 활동이 표시되지 않는다는 것입니다. 내가 가지고 어떻게 모르지만 다른 모든 기여는 달력에 표시되지 않습니다 (그러나 다시, 그들은 11 월에 언젠가부터 하나의 녹색 사각형이 않는 자신의 repos에 표시합니다.
내가 여기에 놓친 거지?

내 github 사이트


1
개인 저장소를 사용합니까?
madhead

아니, 내 모든 REPOS 공개됩니다
Roey 천사

2
이 질문 중 하나에 대한 더 나은 웹 앱 (이 인터페이스를 코딩하지만 어떻게 처리하지 이후 / 작업 계정) 또는 GitHub의에 직접 : 지원
임의

사실, @harsh는 가장 좋은 대답을했다
알리 Saberi에게

답변:


48

이것은 때때로 업데이트 메커니즘이 작동하지 않고 "부실한 캐시"로 변하는 Github 문제입니다. 이것은 심각한 문제가 아닙니다. 문제를 설명하는 이메일을 support@github.com으로 보내면 즉시 해결해드립니다.


2
Github는 이제 지원 웹 사이트를 사용하여 새로운 지원 요청을 생성해야합니다 : support.github.com/contact
Naren

70

자식에서

GoTime2 저장소에 대한 귀하의 기여를 엿 보았고 레이아웃 브랜치에 커밋을 밀어 넣은 것 같습니다.

이러한 기여가 표시되지 않는 이유는 저장소의 기본 브랜치 또는 gh-pages 브랜치에 작성된 커밋 기여 만 추적하기 때문입니다.

https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile#which-contributions-are-counted

기여한 내용이 기본 또는 gh- 페이지에 병합되면 작성한 날짜에 크레딧을 받게됩니다.

그래서 제 경우에는 캘린더에 '귀하의 기여'가 표시되는 것을보기 위해 '레이아웃'브랜치를 '마스터'브랜치와 병합해야했습니다.


2
내 브랜치에서 많이 일한 다음 '마스터'브랜치로 병합했지만 내 기여가 여전히 표시되지 않습니다. 어떤 아이디어? 편집 : 어떤 이유로 내 이메일 주소가 내 git 저장소 (SourceTree)를 관리하는 데 사용하는 응용 프로그램에서 다른 이메일로 설정되었습니다. 해당 이메일 주소를 내 GitHub 계정에 추가했지만 여전히 변경 사항이 표시되지 않습니다. 통계를 다시 계산하는 데 시간이 좀 걸리 길 바랍니다.
robert.bo.roth

4
@ robert.bo.roth ~ "이메일을 연결 한 후 지원팀에 연락하여 이전 기여를 다시 채울 수 있도록해야 할 수 있습니다." 출처 -git.io/NtUV5A
ikaruss

다른 브랜치에 커밋을 한 다음 리포지토리 소유자가 master브랜치에 병합하면 어떨까요? 내 기여가 '기고 물'달력에 기록됩니까?
soshial dec.

늦게, 아마 지금 알고 계시 겠지만 이것이 다른 사람에게 도움이되는 경우 : @soshial 예, 이것이 사실입니다.
Ashley Davies

나에게도 같은 일이 일어났다. 기본 브랜치에 병합 한 후 기여가 즉시 나타납니다. 감사합니다
netishix

69

나 에게이 문제는 gitconfig에서 다른 이메일을 사용하는 직장 ​​컴퓨터에서 커밋했기 때문에 발생했습니다. 내 직장 이메일 주소를 github 계정에 추가해도 과거 커밋이 요약에 표시되지는 않았지만 이제 새 커밋이 정상적으로 표시됩니다.

에서 저장소에 사용중인 이메일 주소를 찾을 수 있습니다 git config user.email.


4
나는 동일한 상황을 가지고 있습니다. 이것은 우리가 변경할 수있는 이메일 대신 사용자 ID에 커밋을 첨부하면 이상합니다.
Mingtao Zhang 2014-06-16

1
이것은 가장 가능성이 답이다 -이 커밋 및 홍보의가 잘 통과하는 경우에도 이전에 발생 보았다 -
planetguru

대단히 감사합니다-이것이 제가 일어나고있는 문제였습니다. 나요 git config user.email <my email>와 커밋 기선을 제압 당했지만, 지금은 내 커밋을 추적합니다. 나는 14 시간 동안 일하면서 새로운 리포지토리를 만들고 전체 알파 버전을 작성하는 날이 있기 때문에 다음에 그들의 지원을 쓸 것입니다. 그러나 나는 그것에 대해 열었던 이슈에 대한 활동 만 가지고 있습니다.
Qaribou에서 조쉬

@turtlemonvh 서로 다른 이메일을 서로 다른 저장소에 연결할 수 있습니다. 따라서 업무용 컴퓨터를 사용하고 있지만 개인 프로젝트 저장소 "personal_project"와 다른 저장소 "work_project"가있는 경우 둘 다에 대해 별도의 이메일 ID를 구성 할 수 있습니다. 터미널의 repo 디렉토리로 이동하여 다음을 수행하십시오 $pwd personal_project $git config user.email "your personal email" $pwd work_project $git config user.email "work email". 그러면 기여를 올바르게 계산해야합니다.
Chaitra Suresh 2014

이것은 아마도 수락 대답이어야합니다. 참고로 git의 역사를 변경할 수 있습니다. 다음은 github의 지침입니다. changing-author-info
Ben


16

이것은 트릭을했다! 나는 방금 사용 $ git config user.email "my email address used on my git repo"했고 작동했습니다.


12

"github 계정에 로그인 할 때 사용한 것과 동일한 이메일 ID로 변경 사항을 적용해야합니다."

해결 방법 :

  • 다음 명령을 사용하여 모든 저장소의 글로벌 이메일 ID를 변경하십시오.

git config --global user.email abc@xyz.com

  • 또는 특정 저장소의 이메일 ID를 변경합니다. particlar 저장소 내부에서 아래 명령을 실행하십시오.

git config user.email abc@xyz.com

  • 또는 저장소에서 .git / config 파일을 열고 편집하십시오.

이메일 = abc@xyz.com 이름 = abc

다른 원인은 https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/ 에서 찾을 수 있습니다.


11

로컬 이메일이 계정에있는 이메일과 정확히 일치하는지 확인하십시오.

터미널로 이동하여 커밋을 푸시하고있는 폴더 내에서 다음을 실행합니다.

git config --global user.email
  #=> TRICULI.TO@MAIL.com

git config --system user.email
  #=> 

git config --local user.email
  #=> triculito@mail.com

비슷한 일이 저에게 일어났습니다. 내 계정의 이메일은 --global에있는 이메일 이었지만 --local은 약간 달랐고 '.'이 없었습니다.

(Gmail에서는 이러한 이메일간에 차이가 없으며 똑같이 작동합니다).


1
이것은 나를 위해 일했습니다. 내 글로벌은 정확했지만 시스템 및 로컬 이메일이 비어 있습니다. 이 두 가지를 추가하면 이제 내 커밋이 표시됩니다.
KellyCode

10

따라서 이것은 일반적으로이 GitHub 도움말을 방문해야하는 많은 요인으로 인해 발생합니다.

내가 찾은 가장 일반적인 실수는 다음과 같습니다.

  1. 로컬 컴퓨터에서 이메일이 제대로 구성되지 않았습니다. (노트북 / PC).
  2. 분기.
  3. 커밋에 기본 또는 gh-pages 분기를 사용하지 않습니다.

개인적으로 최근에 문제 1이 발생하여 터미널 / cmd / cli 로 이동하여이 명령을 실행하여 내 이메일 주소를 로컬로 구성했습니다.

git config --global user.email yourname@email.address

완료되면 다음과 같이이 구성을 다시 실행 해보십시오.

git config --global user.email

다음을 볼 수 있어야합니다.

yourname@email.address

이것이 올바르다면 글로벌 공용 저장소로 로컬 머신을 성공적으로 구성한 것입니다. 이제 다음 커밋이 캘린더에 반영됩니다.


알리 @aasmin 수정 주셔서 감사합니다
geekidharsh

7

아마도 Github가이 문제를 해결했을 것입니다. 한 가지 간단한 방법이 있습니다. github.com 이메일 설정으로 이동 하십시오 : https://github.com/settings/emails

개인 설정-> 이메일

거기에 이메일 주소를 추가하고 확인 링크를 보내 새 이메일 주소를 확인하면 이전 커밋이 모두 '참여'캘린더에 기록되어 있음을 알 수 있습니다. 또한이 이메일 확인을 통해 GitHub에서 알림 및 비밀번호 재설정을받을 수 있습니다.

새 이메일 주소는 계정 관련 알림 (예 : 계정 변경 및 청구 영수증)과 웹 기반 GitHub 작업 (예 : 편집 및 병합)에 사용됩니다.


내 모든 노력이 마침내 다시 표시되는 것을 보니 반갑습니다 ... :)
작업

이것이 내가 한 일이며 매력처럼 작동했습니다. "누락 된"것으로 생각했던 모든 이전 커밋을 보았습니다!
Afflatus

나는 이것을했다. 그러나 여전히 그래프에서 내 작업을 볼 수 없습니다. :( 내가 뭔가 빠졌나요? then you will find your previous commits are all recorded in the 'Your Contributionscalendar` <-이 문장이 옳지 않은 것 같습니다.이 단계는 시간이 걸리나요?
Michael Harley 19

Github 지원팀에 연락하여 기여 문제를 해결했습니다. 예, 이메일 주소가 정확한지 확인했습니다.
Michael Harley

6

iOS 개발 용 Xcode 9에서 동일한 문제가 발생했습니다.

Github에서 비 커미터 작성자를 발견했습니다. 여기에 이미지 설명 입력

Xcode에서 커밋했지만. '참여'캘린더에 기여한 내용이 없습니다.

해결책:

커미터 이름 및 이메일 전역 변경
커밋에 사용되는 이메일 주소는 GitHub 계정과 연결되어야합니다.

터미널에서 :

$ git config --global user.name "Full Name"
$ git config --global user.email "fullname@gmail.com"

GitHub 도움말 : Git에서 커밋 이메일 주소 설정을 참조하세요.


4

많은 커밋이 발생한 후 (새 커밋이 제대로 표시됨) 내 조직에 추가 된 개인 리포지토리에서 커밋에 대한 속성을 보는 데 문제가 있었고 내 프로필에서 이메일 주소를 제거해야만 표시되도록 할 수있었습니다. 그런 다음 동일한 이메일 주소를 다시 추가하십시오.

이렇게하면 GitHub 내에서 캐싱 문제가 해결 된 것 같습니다.


4

이전에 GitHub에서 내 이메일 주소를 변경했고 로컬 주소도 변경하는 것을 잊었습니다.


2

나는 같은 문제가 있었고 이것은 나를 위해 일했습니다 : GitHub 기여 검사기, 아래 링크. 일단 설치되면 프로그램은 최근 커밋의 유효성을 확인하고 규칙 / 규칙이 빨간색으로 충족되지 않은 규칙 목록을 제공합니다.

내 문제는 GitHub가 Cygwin 터미널 이름을 이메일 주소로 사용했기 때문에 Cygwin 터미널 이름을 내 프로필에 추가했고 모든 최근 커밋이 내 GitHub 캘린더에 추가되었습니다.

귀하의 커밋은 기여로 간주되지 않습니다! 아래 세부 정보를 확인하십시오 : https://github.com/jdennes/contribution-checker


2

git config올바른 이메일 주소가 구성 되었더라도 SourceTree 설정에 수동으로 이메일을 추가 해야했습니다. 이렇게 한 후에야 GitHub가 내 기여 그래프에 커밋을 기록하기 시작했습니다.

SourceTree 설정 스크린 샷



2

똑같은 문제가 있었는데, 내 로컬 git의 이메일이 내 GitHub 계정의 이메일과 일치하지 않기 때문입니다.

로컬 컴퓨터에서 이메일을 업데이트하려면 :

git config --global user.email "your.email@email.com"

모든 커밋이 github에서 업데이트되었는지 확인합니다. 그렇지 않은 경우 커밋을 클릭하고 커밋 URL 끝에 ".patch"를 다음과 같이 추가하여 개별 커밋을 확인하여 커밋과 연결된 이메일을 확인할 수 있습니다.

https://github.com/username/repoName/commit/9fbe83f71cfc3503.patch

이제 확인해야 할 이메일을 계정에 추가하기 만하면됩니다 (확인할 필요 없음).

커밋을 다시 확인하면 사용자 이름과 크레딧이 표시됩니다. :)


2

GitHub는 도움말 에서 기여를 측정하는 방법을 명확하게 설명합니다 .

  • 문제 및 pull 요청 :

    • 포크가 아닌 독립형 저장소에서 열린 경우에만
  • 커밋 :
    다음 조건을 모두 충족하는 경우에만 :

    • 커밋에 사용되는 이메일 주소는 GitHub 계정과 연결됩니다.

    • 커밋은 포크가 아닌 독립형 저장소에서 만들어졌습니다.

    • 커밋이 이루어졌습니다.

      • 저장소의 기본 브랜치 (일반적으로 마스터)
      • gh-pages 브랜치 (프로젝트 사이트가있는 저장소의 경우)

    또한 다음 중 하나 이상이 참이어야합니다.

    • 저장소의 공동 작업자이거나 저장소를 소유 한 조직의 구성원입니다.
    • 저장소를 분기했습니다.
    • 리포지토리에서 풀 요청 또는 이슈를 열었습니다.
    • 저장소에 별표를 표시했습니다.

참고 : 기여로 계산하기위한 요구 사항을 충족하는 커밋을 한 후 기여도 그래프에 기여도가 표시되는 것을 보려면 최대 24 시간 동안 기다려야 할 수 있습니다.


1

명령 줄을 통해 내 이메일을 다시 추가했는데 문제가 해결되었습니다.

$ git config user.email "myemil@mydomain.com"

또 다른 문제는 지점에 관한 것입니다. maser 옆에 다른 분기를 만들고 해당 분기를 푸시하려고하면이 문제가 발생할 수 있습니다. 제 경우에는 마스터하기 시작했고 해결책을 얻었습니다.


1

나는 같은 문제가 있었고 해결책은 매우 간단했습니다. 글로벌 이메일 구성에 대해 잘못된 이메일을 설정했습니다.

git config --global user.email "email@yourmail.com"

위 이메일과 GitHub 계정 이메일이 동일한 지 확인하세요.


1

내 로컬 환경에서 GitHub 프로필의 사용자 이름을 내 git 사용자 이름으로 사용하여 유사한 문제를 해결했습니다.

예를 들어

https://github.com/susithrj

로컬 git 구성에서 전역 사용자 이름을 susithrj 로 설정하십시오.

git config --global user.name "susithrj"


0

최근에 랩톱을 복원해야했고 이메일을 git로 재구성하는 것을 잊었습니다. 내 노트북 ​​사용자 이름이 내 자식 사용자 이름과 비슷해 보이므로 맹목적으로 내 커밋이 올바르게 표시되고 있다고 생각했습니다. 게시 된대로 글로벌 이메일 설정을 변경할 수 있습니다. 그러나 프로젝트에서 미스 어트리뷰트 커밋을 수정하려는 경우이 스크립트를 gca실행하여 git 프로젝트 디렉토리에서 실행할 수 있는 별칭을 생성 하여 과거 커밋의 작성자를 변경할 수 있습니다.

귀하의에서 ~디렉토리, 추가 :

$ cat <<EOF >> ~/.aliases
 function git_change_authorship {
 git filter-branch -f --env-filter "
  GIT_AUTHOR_NAME=\"\$1\"
  GIT_AUTHOR_EMAIL=\"\$2\"
  GIT_COMMITTER_NAME=\"\$1\"
  GIT_COMMITTER_EMAIL=\"\$2\"
 "
 }
 alias gca=git_change_authorship
 EOF

 $ source ~/.aliases

그런 다음 git 프로젝트 디렉토리에서 gca <git username> <git email address>

주의! 나는 내가 유일한 커미터였던 내 개인 프로젝트에서만 이것을 사용했습니다. 그룹 프로젝트로 테스트 할 기회가 없었으므로 신중하게 진행하십시오.


0

내 저장소의 "Insights"섹션 / 탭을 확인한 결과 현재 사용자 대신 익명의 사용자 (저이기도 함)가 있었기 때문에 현재 컴퓨터의 이메일 구성을 github와 함께 사용하는 구성으로 변경했습니다. 위에서 설명한대로.

Insigths


0

이메일을 비공개로 유지하고 기여 내용을 캘린더에 계속 표시 할 수 있습니다. github 이메일 설정 에서 이메일 주소를 비공개로 유지 하고 git 구성에서 github noreply 이메일 주소 를 사용 하도록 선택할 수 있습니다 .

git config user.email "xxxxxxxxxxx@users.noreply.github.com"

노트

저에게는 github 이메일 설정 에서 이메일을 비공개로 유지하기로 선택했습니다 . 이것은 나에게 오류를 주었다

Your push would publish a private email address.

내 저장소로 밀어 넣는 동안. 이메일을 삭제했습니다. 이 후 푸시는 성공했지만 기여가 내 캘린더에 기록되지 않았습니다.

이메일 설정 페이지에서 GitHub에서 언급 한대로

웹 기반 Git 작업 (예 : 편집 및 병합)을 수행하고 사용자를 대신하여 이메일을 보낼 때 공개 프로필 이메일을 제거하고 xxxxxxxxxxx@users.noreply.github.com을 사용합니다. 명령 줄 Git 작업에서 비공개 이메일을 사용하려면 Git에서 이메일을 설정 해야합니다 .


0

같은 문제가 있었는데 이메일을 설정하여 내 문제를 해결했습니다.

git config --global user.email jonathan.m2ndoza@gmail.com

도움이 되었기를 바랍니다.


0

github의 "기여 캘린더"또는 "활동 개요"는 github 계정에 기록 된 메일 주소와 관련된 커밋 만 기록합니다.

향후 모든 커밋에 대한 메일 주소 변경

이 스레드의 많은 다른 사람들이 이미 언급했듯이 다음을 통해 현재 로컬에 저장된 이메일 주소를 찾습니다.

git config user.email

github의 메일과 일치하지 않으면 다음을 사용하여 변경하십시오.

git config --global user.email my_email@gmail.com

이렇게하면 향후 모든 커밋에 대한 메일 주소가 전역 적으로 변경되지만 과거 커밋에 대한 "기여 개요"에는 영향을주지 않습니다. 자세한 설명 은 공식 문서 를 참조하십시오.

메일 주소를 변경하여 과거 커밋에 대한 개요를 업데이트합니다.

과거의 많은 커밋이 Github "기여 개요"에 올바르게 기록되지 않았다는 것을 알고 있습니다. 여기에 이미지 설명 입력

이를 변경하려면 공식 github 문서에 설명 단계에 따라 저장소의 작성자 정보를 변경할 수 있습니다 .

간략한 요약 :

  1. git bash 열기
  2. 베어 저장소 복제

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  3. 변수를 변경 한 후 자식 bash는 콘솔에 다음 코드를 붙여 OLD_EMAIL, CORRECT_NAMECORRECT_EMAIL:

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
    
  4. 스크립트를 실행하려면 Enter 키를 누르세요.

  5. 수정 된 기록을 github에 푸시
    git push --force --tags origin 'refs/heads/*'
    

이 절차는 "기여 개요"를 업데이트하고 이전에 표시되지 않은 커밋도 표시해야합니다. 여기에 이미지 설명 입력

경고 : 이 작업은 저장소 기록을 파괴합니다. 다른 사람과 저장소에서 공동 작업하는 경우 게시 된 기록을 다시 작성하는 것은 나쁜 습관으로 간주됩니다. 이 작업은 응급 상황에서만 수행해야합니다.


0

사용자 플래그를 사용해야합니다. 예를 들어 git push -u origin 대신 git push

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.