programing

GitHub 커밋이 '귀하의 기여' 일정에 기록되지 않습니다.

batch 2023. 6. 25. 18:35
반응형

GitHub 커밋이 '귀하의 기여' 일정에 기록되지 않습니다.

저는 제게 계속해서 약속을 했습니다.GitHub리눅스 셸에서 repos를 실행하면 웹 사이트에 표시됩니다.유일한 문제는 "사용자의 기여" 섹션에 최근 활동이 표시되지 않는다는 것입니다.11월의 어느 날부터 녹색 사각형이 하나 있는데 어떻게 얻었는지는 모르겠지만 다른 모든 기여는 달력에 나타나지 않습니다(그러나 다시 말하지만, 그들은 저장소에 표시됩니다).

내가 여기서 뭘 놓쳤지요?

나의 github 사이트

저에게 이 문제는 Gitconfig에서 다른 이메일을 사용하던 업무용 컴퓨터에서 커밋했기 때문에 발생했습니다.Github 계정에 업무용 이메일 주소를 추가해도 과거 커밋이 요약에 표시되지 않았지만, 현재 새로운 커밋이 표시됩니다.

메일 는 저장에중전메있수다습에서 찾을 수 .git config user.email.

처음부터

방금 GoTime2 저장소에 대한 귀하의 기여를 살펴보았는데, 레이아웃 분기에 커밋을 푸시하고 있는 것 같습니다.

이러한 기여가 표시되지 않는 이유는 저장소의 기본 분기 또는 gh-pages 분기에 커밋 기여가 있을 때만 해당 기여를 추적하기 때문입니다.

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

기여가 기본 페이지 또는 GH 페이지에 병합되면 작성한 날짜에 해당 기여에 대한 크레딧이 부여됩니다.

그래서 저의 경우 달력에 '당신의 기여'가 표시되는 것을 보기 위해 '레이아웃' 분기를 '마스터' 분기와 병합해야 했습니다.

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

가능한 원인은 다음과 같은 원인이 있습니다.

포크로 커밋했습니다.

포크로 한 커밋은 당신의 기여에 포함되지 않습니다.

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

이것은 효과가 있었습니다!방금 사용했습니다.$ git config user.email "my email address used on my git repo"그리고 그것은 성공하였다.

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

해결 방법:

  • 다음 명령을 사용하여 모든 리포지토리의 글로벌 전자 메일 ID를 변경합니다.

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

  • 또는 특정 리포지토리에 대한 전자 메일 ID를 변경합니다.파티클 저장소 내부에서 아래 명령 실행

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/

그래서 이것은 보통 많은 요인들로 인해 발생합니다, 당신은 이 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

이것이 올바른 경우 글로벌 공용 보고서로 로컬 컴퓨터를 구성했습니다.이제 다음 커밋이 달력에 표시됩니다.

로컬 전자 메일이 계정에 있는 전자 메일과 완전히 동일한지 확인합니다.

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

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에서는 이 이메일들 사이에 아무런 차이가 없으며, 정확히 동일하게 작동합니다.)

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

개인 설정 --> 이메일

전자 메일 주소를 추가하고 확인 링크 보내기를 통해 새 전자 메일 주소를 확인할 수 있습니다. 그러면 이전 커밋이 모두 '귀하의 기여' 일정에 기록됩니다.또한 이 이메일 확인을 통해 GitHub에서 알림 및 암호 재설정을 받을 수 있습니다.

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

저는 iOS 개발을 위해 Xcode 9에서도 같은 문제를 가지고 있었습니다.

Github에서, 저는 커미셔너가 아닌 작가를 발견했습니다.enter image description here

Xcode로 커밋을 했는데도.'당신의 기여' 일정에 기여한 내용이 없습니다.

솔루션:

전체적으로 커밋 이름 및 전자 메일 변경
커밋에 사용된 전자 메일 주소는 GitHub 계정과 연결되어 있어야 합니다.

터미널:

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

참고 항목GitHub 도움말: Git에서 커밋 전자 메일 주소 설정

나는 두 가지 변화를 통해 그것을 해결했습니다.

  1. 했습니다.git config --global user.email "your github email"
  2. 를 프젝트레기분에변다니습서경에서 변경했습니다.main to mastergithub 웹사이트 @ https://github.com/your-username/your-repo-name/settings/branches 사용하기

`

많은 커밋이 발생한 후(새 커밋이 제대로 표시됨) 조직에 추가된 개인 보고서에서 커밋에 대한 속성을 확인하는 데 문제가 발생했으며 프로필에서 전자 메일 주소를 제거한 다음 동일한 전자 메일 주소를 다시 추가해야 커밋이 표시됩니다.

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

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

.git config올바른 전자 메일 주소가 구성되어 있습니다.GitHub은 이것을 한 후에야 제 기여 그래프에 제 커밋을 기록하기 시작했습니다.

SourceTree Settings Screenshot

저도 똑같은 문제가 있었는데, 알고 보니 제 로컬 깃의 이메일이 깃허브 계정의 이메일과 일치하지 않습니다.

로컬 컴퓨터에서 전자 메일을 업데이트하는 방법

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

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

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

이제 당신이 해야 할 일은 당신이 보는 이메일을 당신의 계정에 추가하는 것입니다.(확인할 필요 없음)

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

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

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

그리고 또 다른 문제는 당신의 지점에 관한 것입니다.마스터 옆에 다른 분기를 만들고 해당 분기를 푸시하려고 하면 이 문제가 발생할 수 있습니다.저의 경우 마스터하기 위해 노력하기 시작했고 해결책을 참조.

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

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

이 스레드의 많은 다른 사용자가 이미 언급했듯이 로컬로 저장된 현재 전자 메일 주소를 다음 방법으로 검색합니다.

git config user.email

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

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

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

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

Github의 "기여 개요"에서 과거의 많은 커밋이 올바르게 기록되지 않았음을 알게 되었습니다.

이를 변경하려면 공식 github 문서에 설명된 단계에 따라 리포지토리에 대한 작성자 정보를 변경할 수 있습니다.

간단한 요약:

  1. 깃배시 열기
  2. 맨 저장소 복제

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  3. 한 후 에 다음 코드를 .OLD_EMAIL,CORRECT_NAME그리고.CORRECT_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. .
    git push --force --tags origin 'refs/heads/*'
    

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

경고:이 작업은 리포지토리 기록에 영향을 미칩니다. 다른 사용자와 저장소에서 공동 작업하는 경우 게시된 기록을 다시 쓰는 것은 잘못된 관행으로 간주됩니다. 당신은 비상시에만 이것을 해야 합니다.

GitHub은 고객의 기여를 평가하는 방법에 대해 다음과 같이 명확하게 설명합니다.

  • 문제 및 꺼내기 요청:

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

    • 커밋에 사용된 전자 메일 주소가 GitHub 계정과 연결되어 있습니다.

    • 커밋은 포크가 아닌 독립 실행형 저장소에서 수행되었습니다.

    • 커밋은 다음과 같습니다.

      • 리포지토리의 기본 분기(일반적으로 마스터)
      • gh-pages 분기(프로젝트 사이트가 있는 리포지토리의 경우)

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

    • 리포지토리의 공동작업자이거나 리포지토리를 소유한 조직의 구성원인 경우
    • 리포지토리를 포크했습니다.
    • 리포지토리에서 꺼내기 요청 또는 이슈를 열었습니다.
    • 리포지토리에 별표를 표시했습니다.

참고: 기여로 간주되는 요구 사항을 충족하는 커밋을 수행한 후 최대 24시간 동안 기다려야 기여가 기여 그래프에 표시될 수 있습니다.

GitHub에 보조 전자 메일을 추가하면 현재 문제뿐만 아니라 과거 커밋/기여를 검색하는 데도 도움이 되었습니다.

로컬 컴퓨터의 전자 메일이 GitHub 계정의 전자 메일과 일치하지 않으면 GitHub은 기여를 채우지 않습니다.시스템에서 메일을 합니다.git config user.emailhttps://github.com/settings/emails 으로 이동하여 로컬 컴퓨터에서 찾을 수 있는 보조 전자 메일을 추가합니다.

저도 같은 문제가 있었고 이것은 저에게 효과가 있었습니다: GitHub 기여 검사기, 아래 링크.설치가 완료되면 프로그램은 최근 커밋의 유효성을 확인하고 규칙 목록을 제공하며 규칙/규칙은 빨간색으로 충족되지 않습니다.

제 문제는 깃허브가 이메일 주소로 싸이그윈 터미널 이름을 사용하고 있다는 것이었습니다. 그래서 저는 그저 제 프로필에 싸이그윈 터미널 이름을 추가했고 최근의 모든 커밋은 제 깃허브 달력에 추가되었습니다.

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

https://github.com/settings/emails 으로 이동하여 git config --global user.email과 함께 사용 중인 전자 메일을 추가할 수 있습니다.

같은 문제가 있었는데, 내 문제는 이메일 설정으로 해결되었습니다.

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

이게 도움이 되길 바랍니다.

저도 같은 문제를 겪었고 해결책은 매우 간단했습니다.글로벌 전자 메일 구성에 대해 잘못된 전자 메일이 설정되었습니다.

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

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

는 같은 문제로 Github 팀에 연락했고 이것이 여러분 중 일부에게 도움이 되기를 바라는 그들의 답변이었습니다.

기부금은 다음에 설명된 특정 기준을 충족하는 경우 계산됩니다.

https://docs.github.com/github/setting-up-and-managing-your-github-profile/why-are-my-contributions-not-showing-up-on-my-profile

이 앱을 사용하면 공용 저장소에 대한 특정 커밋이 기여로 계산되지 않는 이유를 확인할 수 있습니다.

https://contribution-checker.herokuapp.com/ 이 기여 검사기는 제 문제를 해결하는 데 매우 도움이 됩니다.

다음과 같이 GitHub 계정과 연결되지 않은 전자 메일 주소로 커밋이 작성되었기 때문에 사람들은 종종 기여가 누락된 것을 발견합니다.

https://docs.github.com/github/committing-changes-to-your-project/why-are-my-commits-linked-to-the-wrong-user

다음과 같이 커밋 URL 끝에 .patch를 추가하여 커밋 작성자를 확인할 수 있습니다.

https://github.com/github/linguist/commit/cfd5cbaba00122fceea1cfb108c5bdc3d451065a.patch

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

예를 들어,

https://github.com/susithrj

로컬 Git 구성에서 글로벌 사용자 이름을 susithrj로 설정합니다.

git config --global user.name "gitithrj"

최근에 노트북을 복구해야 해서 이메일을 git로 재구성하는 것을 잊었습니다.제 노트북 사용자 이름이 제 git 사용자 이름과 비슷해 보여서 맹목적으로 제 커밋이 올바르게 귀속되고 있다고 생각했습니다.게시된 대로 글로벌 전자 메일 설정을 변경할 수 있습니다.이 " " " " " " 를 할 수 .gca할 수 .git 프로디렉서실에행과여하커작변수있다경할습니를성자밋의거트젝리토▁that▁you다있수▁directory니습g▁to.

의 용자에서~ 디터리, 추가:

$ 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>

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

저장소의 "Insights" 섹션/탭을 확인했는데, 현재 사용자 대신 익명 사용자(나도 포함)가 있어서 현재 컴퓨터의 이메일 구성을 위에서 설명한 대로 github을 사용하는 것으로 변경했습니다.

Insigths

전자 메일을 비공개로 유지하고 일정관리에 기여를 표시할 수 있습니다.깃허브 메일 설정에서 전자 메일 주소를 비공개로 유지하고 Github 응답 전자 메일 주소를 Git 구성에서 사용하도록 선택할 수 있습니다.

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로 설정해야 합니다.

사용자 플래그를 사용해야 합니다.예를들면git push -u origingit push

저는 같은 문제를 겪었고 제가 다른 지점이 아닌 오리진/메인 지점으로 이동하고 있다는 것을 알게 되었습니다.저는 두 지점을 병합하여 해결했습니다.또한, 두 지점이 합병되더라도,origin/main분기가 여러 커밋 뒤에 있지만 기여 섹션은 업데이트되지 않습니다.확실히 하기 위해서는 여전히 병합(종류)을 해야 합니다.origin/main:do:do:do 파일 이름입니다. 다음을 수행하십시오.

참고: (이 솔루션은 하나의 원격에서 다른 대상 저장소로 이동하는 로컬 저장소에서 쉽게 작동합니다.)

  1. git pull origin main:temp

    • 이렇게 branch)로 "temp" (temp는 local branch)로 합니다.origin/main분기는 하나 이상의 분기 시스템을 푸시하는 경우 여러 커밋 뒤에 있습니다. branch를 하여 merge temp branch를 forward)로 이동해야 .
  2. git checkout temp

    • 다음에서 바뀔 입니다: 다에서전환니다됩음다.(origin/main, origin/HEAD, temp)(HEAD -> temp, origin/main, origin/HEAD) 이가은 HEAD이제리있다것의을미합다니는고것키가▁to▁pointing다▁head▁now▁this를 가리키고 있다는 것을 의미합니다.temp분기, 그래서 우리는 그것을 몇 개의 커밋(예를 들어) 앞으로 가게 할 수 있습니다(또는 어떤 경우이든 병합할 수 있습니다).
  3. git merge branch-second

    • 이제 branch-second로 하겠습니다.(origin/branch-second, main, branch-second) 후 의 몇 다음과 .(HEAD -> temp, origin/branch-second, main, branch-second)
  4. git push origin temp:main

    • 이제 온도를 원점에서 메인으로 푸시합니다(원점은 원격을 의미함).
  5. git log --all --decorate --oneline --graph표시:표시:

    • (HEAD -> temp, origin/main, origin/HEAD, origin/branch-second, main, branch-second)
따라서 오리진/메인이 병합되고 분기초로 푸시되며 모두 동일한 수준에 있으며 기여가 나타나기 시작했습니다. 시간이 절약되기를 바랍니다.

같은 내용의 내 중간 기사를 확인하십시오.미디엄

언급URL : https://stackoverflow.com/questions/15289768/github-commits-arent-recorded-in-the-your-contributions-calendar

반응형