Zatwierdzenia GitHub nie są zapisywane w kalendarzu „Twój wkład”

100

Robiłem ciągłe zmiany w moich GitHubrepozytoriach z mojej powłoki Linuksa i ładnie się one wyświetlają na stronie, tak jak powinny. Jedynym problemem jest to, że sekcja „Twój wkład” nie pokazuje żadnej ostatniej aktywności. Mam jeden zielony kwadrat z pewnego dnia w listopadzie, który nie wiem jak mam ale wszystkie pozostałe składki nie pojawi się w kalendarzu (ale znowu, nie pojawiają się w ich repo.
Co ja tu brakuje?

Moja witryna github

Roey Angel
źródło
1
Czy zobowiązujesz się do prywatnego repo?
szalony
nie, wszystkie moje repozytoria są publiczne
Roey Angel
2
To pytanie jest lepsze w przypadku aplikacji internetowych (ponieważ nie dotyczy kodowania, ale sposobu działania interfejsu / kont) lub bezpośrednio do GitHub: Wsparcie
losowo
Właściwie @harsh dał najlepszą odpowiedź
Ali Saberi

Odpowiedzi:

49

Jest to problem z Githubem, w którym czasami mechanizmy aktualizacji nie działają i zamienia się w „przestarzałą pamięć podręczną”. To nic poważnego, po prostu wyślij e-mail na adres [email protected] z opisem problemu, a oni natychmiast go naprawią.

Nevik Rehnel
źródło
2
Github wymaga teraz, nowe zgłoszenia do pomocy technicznej można tworzyć za pomocą witryny pomocy technicznej: support.github.com/contact
Naren
78

U mnie ten problem był spowodowany przez to, że popełniłem błąd z mojego komputera roboczego, na którym korzystałem z innego adresu e-mail w moim gitconfig. Dodanie mojego służbowego adresu e-mail do mojego konta github nie spowodowało, że poprzednie zatwierdzenia pojawiły się w podsumowaniu, ale nowe zatwierdzenia są teraz wyświetlane tak, jak powinny.

Możesz znaleźć adres e-mail, którego używasz do repozytorium git config user.email.

turtlemonvh
źródło
4
Mam taką samą sytuację, to dziwne, gdyby dołączyli zobowiązanie do identyfikatora użytkownika zamiast adresu e-mail, co moglibyśmy zmienić.
Mingtao Zhang
1
To jest najbardziej prawdopodobna odpowiedź - widziałem to już wcześniej, mimo że zatwierdzenia i PR mają się dobrze -
planetguru
Bardzo dziękuję - to był dokładnie ten problem, z którym miałem do czynienia. Zrobiłem git config user.email <my email>i wypchnął zatwierdzenie, a teraz śledzi moje zatwierdzenia. Następnie napiszę ich wsparcie, ponieważ mam dni, w których pracowałem 14 godzin, robiąc nowe repozytorium i otrzymując napisaną całą wersję alfa, ale mam aktywność tylko w przypadku problemów, które otworzyłem przeciwko niemu.
Josh z Qaribou,
@turtlemonvh Możliwe jest powiązanie różnych wiadomości e-mail z różnymi repozytoriami. Więc jeśli używasz komputera w pracy, ale masz osobiste repozytorium projektów „personal_project” i inne repozytorium „work_project”, możesz skonfigurować osobne identyfikatory e-mail dla obu. Przejdź do katalogu repozytorium na terminalu i wykonaj następujące czynności. $pwd personal_project $git config user.email "your personal email" $pwd work_project $git config user.email "work email"Powinno to poprawnie policzyć Twój wkład.
Chaitra Suresh
To prawdopodobnie powinna być akceptowana odpowiedź. FYI, możesz zmienić historię git. Oto instrukcje z githuba: zmiana informacji o autorze
Ben
74

z git

Właśnie rzuciłem okiem na twój wkład w repozytorium GoTime2 i wygląda na to, że wypychałeś zatwierdzenia do gałęzi układu.

Powodem, dla którego te wkłady się nie pojawiają, jest to, że śledzimy wkłady tylko wtedy, gdy są one wprowadzane do domyślnej gałęzi repozytorium lub gałęzi stron gh:

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

Gdy twoje wkłady zostaną scalone ze stronami domyślnymi lub gh, otrzymasz je w dniu, w którym je utworzyłeś.

więc w moim przypadku musiałem scalić gałąź „layout” z gałęzią „master”, aby zobaczyć, jak w kalendarzu pojawią się „twoje wkłady”.

Jonathan Chad Faling
źródło
2
Dużo pracuję we własnym oddziale, a następnie łączę się z gałęzią „nadrzędną”, ale mój wkład nadal się nie pojawia. Jakieś pomysły? Edycja: z jakiegoś powodu mój adres e-mail został ustawiony na inny adres e-mail w aplikacji, której używam do zarządzania repozytoriami git (SourceTree). Dodałem ten adres e-mail do mojego konta GitHub, ale nadal nie widzę żadnych zmian. Mam nadzieję, że ponowne obliczenie statystyk zajmie im trochę czasu.
robert.bo.roth
4
@ robert.bo.roth ~ „Po połączeniu e-maili może być konieczne skontaktowanie się z pomocą techniczną, aby uzupełnić Twoje poprzednie wpisy”. Źródło - git.io/NtUV5A
ikaruss
A co jeśli zrobiłem commity na inną gałąź, a następnie właściciel repozytorium połączył je w mastergałąź. Czy mój wkład zostałby zapisany w kalendarzu „Twoje wkłady”?
soshial
Późno, więc prawdopodobnie już wiesz, ale na wypadek, gdyby przyniosło to korzyści komukolwiek innemu: @soshial tak, tak jest :), o ile zauważyłem, zawiera datę wsteczną i potwierdza po ich scaleniu.
Ashley Davies,
To samo przytrafiło się mnie. Po scaleniu do gałęzi domyślnej składki pojawiały się natychmiast. Dziękuję
netishix
20

To załatwiło sprawę! Po prostu użyłem $ git config user.email "my email address used on my git repo"i zadziałało.

Tyler Morgan
źródło
14

„Musisz zatwierdzić zmiany przy użyciu tego samego identyfikatora e-mail, którego użyłeś do zalogowania się na swoje konto github”

Jak rozwiązać:

  • Zmień globalny identyfikator e-mail dla wszystkich repozytoriów za pomocą następującego polecenia.

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

  • Lub Zmień identyfikator e-mail dla jednego konkretnego repozytorium. Z wnętrza repozytorium cząstek uruchom poniższe polecenie

git config user.email [email protected]

  • Lub w repozytorium otwórz plik .git / config i edytuj

email = [email protected] name = abc

inne przyczyny można znaleźć tutaj https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/

Vishwanath Gowda K.
źródło
12

Upewnij się, że Twój lokalny adres e-mail jest dokładnie taki sam, jak ten na koncie.

Idź do terminala i wewnątrz folderu, w którym wypychasz commity, uruchom:

git config --global user.email
  #=> [email protected]

git config --system user.email
  #=> 

git config --local user.email
  #=> [email protected]

Coś podobnego działo się ze mną. Adres e-mail na moim koncie należał do adresu --global, ale mój --local był nieco inny, nie zawierał znaku „.”.

(W Gmailu nie ma różnicy między tymi e-mailami, działają dokładnie tak samo).

drjorgepolanco
źródło
1
To zadziałało dla mnie. Mój globalny był poprawny, ale systemowe i lokalne e-maile były puste. Dodałem te dwa i teraz pojawiają się moje zmiany.
KellyCode
11

więc zwykle dzieje się tak z powodu wielu czynników, dla których musisz odwiedzić tę pomoc GitHub

Najczęstsze błędy, które znalazłem to:

  1. Poczta e-mail nie została poprawnie skonfigurowana na komputerze lokalnym. (twój laptop / komputer).
  2. Rozwidlenie.
  3. Nie używam gałęzi default ani gh-pages do zatwierdzenia.

Osobiście miałem ostatnio problem 1, dla którego przeszedłem do mojego terminala / cmd / cli i skonfigurowałem mój adres e-mail lokalnie, uruchamiając to polecenie

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

Gdy to zrobisz, spróbuj ponownie uruchomić tę konfigurację w następujący sposób:

git config --global user.email

Powinieneś być w stanie zobaczyć:

[email protected]

Jeśli było to poprawne, pomyślnie skonfigurowałeś swój lokalny komputer z globalnym publicznym repozytorium. Teraz twój następny commit zostanie dodany do twojego kalendarza.

geekidharsh
źródło
Dzięki za poprawkę @aasmin ali
geekidharsh
8

Może Github rozwiązał ten problem. Jest jeden prosty sposób, przejdź do ustawień e-mail github.com: https://github.com/settings/emails

Ustawienia osobiste -> E-maile

Możesz tam dodać adres e-mail i zweryfikować swój nowszy adres e-mail, wysyłając link weryfikacyjny, a wtedy zobaczysz, że wszystkie poprzednie zatwierdzenia są zapisane w kalendarzu „Twój wkład”.Ta weryfikacja e-mailowa pozwoli Ci również otrzymywać powiadomienia i resetowanie hasła z GitHub.

Twój nowy adres e-mail będzie używany do wysyłania powiadomień związanych z kontem (np. Zmiany konta i pokwitowania faktur), a także wszelkich operacji internetowych na GitHubie (np. Zmiany i połączenia).

Guohua
źródło
Miło widzieć ponownie całą moją ciężką pracę ... :)
pracowałem
To właśnie zrobiłem i zadziałało jak urok. Widziałem wszystkie moje stare commity, o których myślałem, że „brakuje”!
Afflatus
Ja to zrobiłem. Ale nadal nie widzę mojej pracy na wykresie. :( Czy coś mi brakuje? then you will find your previous commits are all recorded in the 'Your ContributionsCalendar` <- To stwierdzenie nie wydaje się być słuszne. Czy ten krok wymaga czasu?
Michael Harley,
Rozwiązałem problem z datkiem, kontaktując się z pomocą Github. Tak, sprawdziłem, czy mój adres e-mail jest poprawny.
Michael Harley,
7

Miałem ten sam problem w Xcode 9 do programowania na iOS.

Na Github zauważyłem niezobowiązującego autora. wprowadź opis obrazu tutaj

Mimo że wykonałem commity w Xcode. W kalendarzu „Twoje składki” nie było żadnych wpisów.

Rozwiązanie:

Globalna zmiana nazwy i adresu e-mail Committera Adres
e-mail używany do zatwierdzania musi być powiązany z Twoim kontem GitHub.

W terminalu:

$ git config --global user.name "Full Name"
$ git config --global user.email "[email protected]"

Zobacz także Pomoc GitHub: Ustawianie adresu e-mail zatwierdzenia w Git

Wady Bulaquena
źródło
5

Miałem problemy z wyświetlaniem atrybutów dla zatwierdzeń w prywatnym repozytorium, które zostało dodane do mojej organizacji po wielu moich zatwierdzeniach (nowe zatwierdzenia pojawiały się poprawnie) i mogłem je wyświetlić tylko poprzez usunięcie adresu e-mail z mojego profilu, a następnie ponowne dodanie tego samego adresu e-mail.

Wygląda na to, że zrobienie tego rozwiązało problem z buforowaniem w GitHub.

aaaronic
źródło
5

Okazuje się, że wcześniej zmieniłem swój adres e-mail na GitHub i zapomniałem też zmienić lokalnego.

Cesare
źródło
3

Miałem ten sam problem i to zadziałało dla mnie: GitHub sprawdzanie wkładu, link poniżej. Po zainstalowaniu program sprawdza ważność ostatnich zatwierdzeń i wyświetla listę reguł, z regułami niespełnionymi na czerwono.

Mój problem polegał na tym, że GitHub używał nazwy terminala Cygwin jako adresu e-mail, więc właśnie dodałem nazwę terminala Cygwin do mojego profilu, a wszystkie ostatnie zatwierdzenia zostały dodane do mojego kalendarza GitHub.

Twoje zobowiązanie nie będzie liczone jako wkład! Sprawdź szczegóły poniżej: https://github.com/jdennes/contribution-checker

theWhiteFox
źródło
3

Muszę ręcznie dodać mój adres e-mail do ustawień SourceTree, nawet jeśli git configskonfigurowałem właściwy adres e-mail. Dopiero po wykonaniu tej czynności GitHub zaczął rejestrować moje zatwierdzenia do mojego wykresu wkładu.

Zrzut ekranu ustawień SourceTree

knutigro
źródło
3

Miałem dokładnie ten sam problem, okazuje się, że e-mail w moim lokalnym git nie pasuje do adresu e-mail na moim koncie GitHub.

Aby zaktualizować wiadomość e-mail na komputerze lokalnym:

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

Sprawdź, czy wszystkie Twoje zatwierdzenia są zaktualizowane na Twoim githubie, jeśli nie, możesz sprawdzić poszczególne zatwierdzenia, aby zobaczyć, z jakim e-mailem jest powiązane zatwierdzenie, klikając zatwierdzenie i dodając „.patch” na końcu adresu URL zatwierdzenia w następujący sposób:

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

Teraz wszystko, co musisz zrobić, to dodać ten e-mail, który widzisz do swojego konta (nie trzeba go weryfikować)

Sprawdź ponownie zatwierdzenie i powinieneś zobaczyć swoją nazwę użytkownika i kredyt :)

mwen1993
źródło
3

Właśnie ponownie dodałem mój e-mail za pomocą wiersza poleceń i rozwiązuje to problem:

$ git config user.email "[email protected]"

Kolejna kwestia dotyczy Twojego oddziału. Jeśli utworzysz inną gałąź poza maserem i spróbujesz wypchnąć tę gałąź, ten problem może wystąpić. W moim przypadku zacząłem naciskać na opanowanie i znalazłem rozwiązanie.

Asadut Zaman
źródło
3

GitHub jasno określa, w jaki sposób mierzą Twój wkład w swojej Pomocy :

  • Problemy i żądania ściągnięcia:

    • Tylko jeśli zostały otwarte w samodzielnym repozytorium, a nie w forku
  • Commits:
    tylko jeśli spełniają wszystkie poniższe warunki:

    • Adres e-mail używany do zatwierdzania jest powiązany z Twoim kontem GitHub

    • Zatwierdzenia zostały wykonane w samodzielnym repozytorium, a nie w forku

    • Dokonano zatwierdzeń:

      • W domyślnej gałęzi repozytorium (zwykle master)
      • W gałęzi gh-pages (dla repozytoriów z witrynami projektów)

    Ponadto przynajmniej jedno z poniższych musi być spełnione:

    • Jesteś współpracownikiem w repozytorium lub jesteś członkiem organizacji będącej właścicielem repozytorium
    • Rozwidliłeś repozytorium
    • Otworzyłeś żądanie ściągnięcia lub problem w repozytorium
    • Oznaczyłeś repozytorium gwiazdką

Uwaga: po dokonaniu zobowiązania, które spełnia wymagania liczone jako wkład, może być konieczne odczekanie do 24 godzin, aby zobaczyć wkład pojawiający się na wykresie wkładu

Mehdi
źródło
To (w domyślnej gałęzi repozytorium (zwykle master)) ma teraz całkowity sens, jest to dokładnie powód, dla którego mój wkład nadal się nie wyświetla. Dzięki!
Marcos Buarque
@MarcosBuarque Nie ma za co;)
Mehdi
2

Miałem ten sam problem i rozwiązanie było całkiem proste. Miałem nieprawidłowy adres e-mail dla globalnej konfiguracji poczty e-mail

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

Upewnij się tylko, że powyższy adres e-mail i adres e-mail konta GitHub są takie same

Hadi Mir
źródło
2

„Kalendarz datków” lub „Przegląd aktywności” na githubie rejestruje tylko zatwierdzenia, które są związane z adresem e-mail zapisanym na koncie github.

Zmień adres e-mail dla wszystkich przyszłych zatwierdzeń

Jak już zauważyło wielu innych w tym wątku, sprawdź aktualny lokalnie zapisany adres e-mail przez:

git config user.email

Jeśli nie pasuje do poczty na githubie, zmień ją za pomocą:

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

Spowoduje to globalną zmianę adresu e-mail dla wszystkich przyszłych zatwierdzeń, ale nie wpłynie na „Przegląd wkładów” dla poprzednich. Rozszerzony opis można znaleźć w oficjalnej dokumentacji .

Zmień adres e-mail, aby zaktualizować przegląd poprzednich zatwierdzeń

Zdajesz sobie sprawę, że wiele z Twoich poprzednich zatwierdzeń nie zostało poprawnie zarejestrowanych w „Przeglądzie datków” na Githubie: wprowadź opis obrazu tutaj

Aby to zmienić, możesz zmienić informacje o autorze repozytoriów, wykonując kroki wyjaśnione w oficjalnych dokumentach github .

Krótkie podsumowanie:

  1. Otwórz git bash
  2. Sklonuj czyste repozytorium

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  3. Wklej następujący kod do konsoli bash git po zmianie zmiennych OLD_EMAIL, CORRECT_NAMEoraz CORRECT_EMAIL:

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="[email protected]"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="[email protected]"
    
    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. Naciśnij klawisz Enter, aby uruchomić skrypt

  5. Prześlij poprawioną historię na github
    git push --force --tags origin 'refs/heads/*'
    

Ta procedura powinna zaktualizować „Przegląd wkładów”, a teraz także pokazać zmiany, których wcześniej nie było: wprowadź opis obrazu tutaj

Ostrzeżenie : ta czynność ma destrukcyjny wpływ na historię repozytorium. Jeśli współpracujesz nad repozytorium z innymi, przepisywanie opublikowanej historii jest uważane za złą praktykę. Należy to zrobić tylko w nagłych wypadkach.

Gin z tonikiem
źródło
2

Rozwiązałem podobny problem, używając nazwy użytkownika profilu GitHub jako mojej nazwy użytkownika git w moim środowisku lokalnym.

Na przykład

https://github.com/susithrj

ustaw globalną nazwę użytkownika jako susithrj w lokalnej konfiguracji git.

git config --global user.name "susithrj"

SRJ
źródło
1

Niedawno musiałem przywrócić laptopa i zapomniałem zmienić konfigurację poczty e-mail na git. Moja nazwa użytkownika laptopa wygląda podobnie do mojej git, więc po prostu ślepo myślałem, że moje zmiany są poprawnie przypisywane. Zgodnie z opublikowanym opisem możesz zmienić swoje globalne ustawienia poczty e-mail. Jeśli jednak chcesz poprawić błędnie przypisane zatwierdzenia w swoim projekcie, możesz użyć tego skryptu, aby utworzyć alias gca, który możesz uruchomić w katalogu projektu git, aby zmienić autorstwo poprzednich zatwierdzeń.

W swoim ~katalogu dodaj:

$ 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

następnie w katalogu projektu git uruchom gca <git username> <git email address>

Heads-up! Użyłem tego tylko w moich osobistych projektach, w których byłem jedynym autorem. Nie miałem okazji przetestować tego w projektach grupowych, więc postępuj ostrożnie.

lockjohn
źródło
1

Sprawdziłem sekcję / zakładkę "Insights" w moim repozytorium i zamiast mojego obecnego użytkownika był anonimowy użytkownik (którym też byłem ja), więc zmieniłem konfigurację poczty e-mail na moim obecnym komputerze na tę, z którą korzystam z github jak opisano powyżej.

Insigths

bsh
źródło
1

Możesz zachować swój adres e-mail jako prywatny, a przesłane wpisy będą widoczne w kalendarzu. Możesz ustawić swój adres e-mail jako prywatny w ustawieniach poczty e-mail github i użyć adresu e-mail github noreply w konfiguracji git.

git config user.email "[email protected]"

Uwaga

W moim przypadku zdecydowałem się zachować prywatność mojej poczty e-mail w ustawieniach poczty e-mail na githubie . To dało mi błąd

Your push would publish a private email address.

podczas próby wypchnięcia do mojego repozytorium. Usunąłem e-mail. Pchnięcie po tym zakończyło się sukcesem, ale wkład nie został zapisany w moim kalendarzu.

Jak wspomniano w GitHub na stronie ustawień poczty e-mail

Usuniemy Twój adres e-mail z profilu publicznego i użyjemy adresu [email protected] podczas wykonywania internetowych operacji Git (np. Edycji i scalania) oraz wysyłania wiadomości e-mail w Twoim imieniu. Jeśli chcesz, aby operacje Git z wiersza poleceń korzystały z Twojego prywatnego adresu e-mail, musisz ustawić swój adres e-mail w Gicie .

Bitto Bennichan
źródło
1

Miałem ten sam problem, mój został naprawiony przez ustawienie adresu e-mail

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

Mam nadzieję że to pomoże.

Jonathan Mendoza
źródło
1

Upewnij się, że używasz flagi użytkownika. Na przykład git push -u origin zamiast git push

Upulie Han
źródło