Các cam kết trên GitHub không được ghi trong lịch 'Đóng góp của bạn'


94

Tôi đã liên tục thực hiện các cam kết đối với GitHubcác kho lưu trữ của mình từ trình bao linux của tôi và chúng hiển thị độc đáo trên trang web đúng như mong muốn. Vấn đề duy nhất là phần "Đóng góp của bạn" không hiển thị bất kỳ hoạt động nào gần đây. Tôi có một hình vuông màu xanh lá cây từ một ngày nào đó vào tháng mà tôi không biết làm thế nào tôi có nhưng tất cả những đóng góp khác không hiển thị trong lịch (nhưng một lần nữa, họ làm hiển thị trong các hợp đồng mua của họ.
Tôi đang thiếu gì ở đây?

Trang github của tôi


1
Bạn có cam kết repo riêng tư không?
madhead

không, tất cả các đại diện của tôi đều công khai
Roey Angel

2
Câu hỏi này tốt hơn cho Ứng dụng web (vì nó không liên quan đến mã hóa mà là cách giao diện / tài khoản hoạt động) hoặc gửi trực tiếp đến GitHub: Hỗ trợ
ngẫu nhiên

Trên thực tế, @harsh đã đưa ra câu trả lời tốt nhất
Ali Saberi

Câu trả lời:


48

Đây là một vấn đề trên Github trong đó đôi khi cơ chế cập nhật của chúng không hoạt động và nó biến thành "bộ nhớ cache cũ". Điều này không có gì nghiêm trọng, chỉ cần gửi email tới support@github.com mô tả vấn đề và họ sẽ khắc phục ngay.


2
Github hiện yêu cầu, các yêu cầu hỗ trợ mới được tạo bằng cách sử dụng trang web Hỗ trợ của họ: support.github.com/contact
Naren

70

từ git

Tôi vừa xem qua những đóng góp của bạn cho kho lưu trữ GoTime2 và có vẻ như bạn đang đẩy các cam kết vào nhánh bố cục.

Lý do tại sao những đóng góp đó không hiển thị là chúng tôi chỉ theo dõi các đóng góp cam kết khi chúng được thực hiện cho nhánh mặc định của kho lưu trữ hoặc nhánh gh-pages:

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

Sau khi các đóng góp của bạn được hợp nhất vào trang mặc định hoặc trang gh, bạn sẽ được ghi có cho chúng vào ngày bạn tạo ra chúng.

vì vậy trong trường hợp của tôi, tôi phải hợp nhất nhánh 'bố cục' của mình với nhánh 'chính' để xem 'đóng góp của bạn' hiển thị trong lịch.


2
Tôi làm việc trong chi nhánh của chính mình rất nhiều, và sau đó hợp nhất vào chi nhánh 'chính', nhưng những đóng góp của tôi vẫn không hiển thị. Có ý kiến ​​gì không? Chỉnh sửa: vì một số lý do mà địa chỉ email của tôi đã được đặt thành một email khác trong ứng dụng mà tôi sử dụng để quản lý kho git của mình (SourceTree). Tôi đã thêm địa chỉ email đó vào tài khoản GitHub của mình nhưng vẫn không thấy bất kỳ thay đổi nào. Tôi hy vọng chỉ mất một thời gian để họ tính toán lại các số liệu thống kê.
robert.bo.roth

4
@ robert.bo.roth ~ "Sau khi liên kết email, bạn có thể cần liên hệ với bộ phận hỗ trợ để họ có thể lấp đầy các đóng góp trước đây của bạn." Nguồn - git.io/NtUV5A
ikaruss

Điều gì sẽ xảy ra nếu tôi thực hiện cam kết với một chi nhánh khác và sau đó chủ sở hữu của repo đã hợp nhất chúng thành masterchi nhánh. Đóng góp của tôi có được ghi vào lịch 'Đóng góp của bạn' không?
soshial

Muộn, vì vậy bạn có thể biết bây giờ, nhưng trong trường hợp điều này có lợi cho bất kỳ ai khác: @soshial vâng, đây là trường hợp :) nó sẽ lùi lại và thừa nhận sau khi chúng được hợp nhất, theo như tôi nhận thấy.
Ashley Davies

Điều tương tự cũng xảy ra với tôi. Sau khi hợp nhất vào nhánh mặc định, các khoản đóng góp xuất hiện ngay lập tức. Cảm ơn bạn
netishix

69

Đối với tôi, sự cố này do tôi thực hiện từ máy tính làm việc của mình, nơi tôi đang sử dụng một email khác trong gitconfig của mình. Việc thêm địa chỉ email công việc vào tài khoản github của tôi không làm cho các cam kết trước đây hiển thị trong bản tóm tắt, nhưng các cam kết mới hiện đang hiển thị như bình thường.

Bạn có thể tìm thấy địa chỉ email mà bạn đang sử dụng cho một kho lưu trữ git config user.email.


4
Tôi cũng gặp trường hợp tương tự, điều này thật kỳ lạ, nếu họ đính kèm cam kết vào userid thay vì Email, chúng tôi có thể thay đổi.
Mingtao Zhang

1
Đây là câu trả lời rất có thể - Tôi đã thấy điều này xảy ra trước khi mặc dù cam kết và của PR đang trải qua chỉ tốt -
planetguru

Cảm ơn rất nhiều - đây chính xác là vấn đề tôi đang xảy ra. Đã git config user.email <my email>thực hiện và đẩy một cam kết, và bây giờ nó đang theo dõi các cam kết của tôi. Tôi sẽ viết bài hỗ trợ của họ tiếp theo, vì tôi đã có những ngày làm việc 14 giờ, tạo một bản repo mới và viết toàn bộ phiên bản alpha, nhưng tôi chỉ có hoạt động cho những vấn đề tôi đã mở chống lại nó.
Josh từ Qaribou,

@turtlemonvh Có thể liên kết các email khác nhau với các kho lưu trữ khác nhau. Vì vậy, nếu bạn đang sử dụng máy tính làm việc của mình nhưng có repo dự án cá nhân "personal_project" và repo khác "work_project", bạn có thể định cấu hình các ID email riêng biệt cho cả hai. Đi tới thư mục repo trên thiết bị đầu cuối và làm như sau $pwd personal_project $git config user.email "your personal email" $pwd work_project $git config user.email "work email"Điều đó sẽ tính đúng các đóng góp của bạn.
Chaitra Suresh

Đây có lẽ nên là câu trả lời chấp nhận. FYI, bạn có thể thay đổi lịch sử của git. Đây là hướng dẫn từ github: change -author-info
Ben


16

Điều này đã thực hiện thủ thuật! Tôi chỉ cần sử dụng $ git config user.email "my email address used on my git repo"và nó đã hoạt động.


12

"Bạn phải thực hiện các thay đổi với cùng một id email mà bạn đã sử dụng để đăng nhập vào tài khoản github của mình"

Giải quyết thế nào:

  • Thay đổi id email chung cho tất cả các kho bằng cách sử dụng lệnh sau.

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

  • Hoặc Thay đổi id email cho một kho lưu trữ cụ thể. Từ bên trong kho lưu trữ cụ thể, chạy lệnh dưới đây

git config user.email abc@xyz.com

  • Hoặc trong kho lưu trữ, mở tệp .git / config và chỉnh sửa

email = abc@xyz.com name = abc

các nguyên nhân khác có thể được tìm thấy tại đây https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/


11

Đảm bảo rằng email cục bộ của bạn giống hệt với email trong tài khoản.

Đi tới thiết bị đầu cuối và bên trong thư mục bạn đang đẩy các cam kết, chạy:

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

git config --system user.email
  #=> 

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

Một cái gì đó tương tự đã xảy ra với tôi. Email trong tài khoản của tôi là email trong --global, nhưng --local của tôi hơi khác một chút, nó không có '.'.

(Trong Gmail không có sự khác biệt giữa các email đó, chúng hoạt động hoàn toàn giống nhau).


1
Điều này đã làm việc cho tôi. Toàn cầu của tôi là chính xác nhưng hệ thống và email cục bộ trống. Đã thêm hai điều đó và bây giờ cam kết của tôi hiển thị.
KellyCode

10

vì vậy điều này thường xảy ra do nhiều yếu tố, bạn phải truy cập phần trợ giúp GitHub này

Những sai lầm phổ biến nhất mà tôi tìm thấy là:

  1. Email không được định cấu hình đúng trên máy cục bộ. (máy tính xách tay / máy tính của bạn).
  2. Rèn.
  3. Không sử dụng nhánh mặc định hoặc gh-pages để cam kết.

Cá nhân tôi đã gặp sự cố 1 gần đây, tôi đã truy cập vào terminal / cmd / cli của mình và định cấu hình cục bộ địa chỉ email của mình bằng cách chạy lệnh này

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

Sau khi hoàn tất, hãy thử chạy lại cấu hình này như sau:

git config --global user.email

Bạn sẽ có thể thấy:

yourname@email.address

Nếu điều này là chính xác, bạn đã định cấu hình thành công máy cục bộ của mình với repo công khai toàn cầu. Bây giờ cam kết tiếp theo của bạn sẽ được ghi có vào lịch của bạn.


Cảm ơn vì bản sửa lỗi @aasmin ali
geekidharsh

7

Có lẽ Github đã khắc phục sự cố này. Có một cách đơn giản, truy cập cài đặt email github.com: https://github.com/settings/emails

Cài đặt cá nhân -> Email

Bạn có thể thêm địa chỉ email vào đó và xác minh địa chỉ email mới hơn của mình bằng cách gửi liên kết xác minh, sau đó bạn sẽ thấy các cam kết trước đây của mình đều được ghi trong lịch 'Đóng góp của bạn'. Và xác minh email này cũng sẽ cho phép bạn nhận thông báo và đặt lại mật khẩu từ GitHub.

Địa chỉ email mới của bạn sẽ được sử dụng cho các thông báo liên quan đến tài khoản (ví dụ: thay đổi tài khoản và biên nhận thanh toán) cũng như mọi hoạt động GitHub dựa trên web (ví dụ: chỉnh sửa và hợp nhất).


Rất vui khi thấy tất cả công việc khó khăn của tôi cuối cùng cũng được thể hiện một lần nữa ... :)
đã làm việc

Đây là những gì tôi đã làm và nó hoạt động như một cái duyên. Tôi đã thấy tất cả các cam kết cũ của tôi mà tôi nghĩ là "mất tích"!
Afflatus

Tôi đã làm điều này. Nhưng vẫn không thể nhìn thấy công việc của tôi trên đồ thị. :( Tôi có thiếu thứ gì không? then you will find your previous commits are all recorded in the 'Your ContributionsLịch` <- Câu nói này có vẻ không đúng. Bước này có mất thời gian không?
Michael Harley

Tôi đã khắc phục sự cố đóng góp của mình bằng cách liên hệ với bộ phận hỗ trợ của Github. Có, tôi đã kiểm tra địa chỉ email của mình là chính xác.
Michael Harley

6

Tôi đã gặp vấn đề tương tự trong Xcode 9 dành cho phát triển iOS.

Trong Github, tôi nhận thấy một tác giả không cam kết. nhập mô tả hình ảnh ở đây

Mặc dù tôi đã thực hiện cam kết trong Xcode. Không có đóng góp nào trong Lịch 'Đóng góp của bạn'.

Giải pháp:

Thay đổi Tên người cam kết và Email trên toàn cầu
Địa chỉ email được sử dụng cho các cam kết phải được liên kết với tài khoản GitHub của bạn.

Trong nhà ga:

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

Xem thêm Trợ giúp GitHub: Đặt địa chỉ email cam kết của bạn trong Git


4

Tôi gặp sự cố khi xem các phân bổ cho các cam kết trên repo riêng tư đã được thêm vào tổ chức của tôi sau khi nhiều cam kết của tôi xảy ra (các cam kết mới hiển thị đúng cách) và chỉ có thể làm cho chúng hiển thị bằng cách xóa địa chỉ email khỏi hồ sơ của tôi, sau đó thêm lại cùng một địa chỉ email.

Có vẻ như làm điều này đã giải quyết được vấn đề bộ nhớ đệm trong GitHub.


4

Hóa ra trước đây tôi đã thay đổi địa chỉ email của mình trên GitHub và tôi cũng quên thay đổi địa chỉ cục bộ.


2

Tôi đã gặp vấn đề tương tự và điều này đã hiệu quả với tôi: trình kiểm tra đóng góp GitHub, liên kết bên dưới. Sau khi cài đặt, chương trình sẽ kiểm tra tính hợp lệ của các cam kết gần đây của bạn và cung cấp cho bạn danh sách các quy tắc, với quy tắc / quy tắc không được đáp ứng có màu đỏ.

Vấn đề của tôi là GitHub đang sử dụng tên thiết bị đầu cuối Cygwin làm địa chỉ email vì vậy tôi chỉ cần thêm tên thiết bị đầu cuối Cygwin vào hồ sơ của mình và tất cả các cam kết gần đây đã được thêm vào lịch GitHub của tôi.

Cam kết của bạn sẽ không được tính là một đóng góp! Kiểm tra chi tiết bên dưới: https://github.com/jdennes/contribution-checker


2

Tôi tự hào thêm email của mình vào cài đặt SourceTree theo cách thủ công ngay cả khi git configđã định cấu hình đúng địa chỉ email. Chỉ sau khi làm điều này, GitHub mới bắt đầu ghi lại cam kết của tôi vào biểu đồ đóng góp của tôi.

Ảnh chụp màn hình cài đặt SourceTree



2

Tôi đã gặp vấn đề chính xác tương tự, hóa ra là do email trên git cục bộ của tôi không khớp với email trên tài khoản GitHub của tôi.

Để cập nhật email trên máy cục bộ của bạn:

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

Xác minh rằng tất cả các cam kết của bạn đã được cập nhật trên github của bạn, nếu không, bạn có thể kiểm tra các cam kết riêng lẻ để xem cam kết được liên kết với email nào bằng cách nhấp vào cam kết và thêm ".patch" vào cuối url cam kết như sau:

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

Bây giờ tất cả những gì bạn phải làm là thêm email mà bạn thấy vào tài khoản của mình. (Không cần xác minh)

Kiểm tra lại cam kết và bạn sẽ thấy tên người dùng của mình và được ghi có :)


2

GitHub nêu rõ cách họ đo lường đóng góp của bạn trong Trợ giúp của họ :

  • Vấn đề và Yêu cầu kéo:

    • Chỉ khi chúng được mở trong một kho lưu trữ độc lập, không phải một nhánh
  • Cam kết:
    Chỉ khi đáp ứng tất cả các điều kiện sau:

    • Địa chỉ email được sử dụng cho các cam kết được liên kết với tài khoản GitHub của bạn

    • Các cam kết được thực hiện trong một kho lưu trữ độc lập, không phải một nhánh rẽ

    • Các cam kết đã được thực hiện:

      • Trong nhánh mặc định của kho lưu trữ (thường là chính)
      • Trong nhánh gh-pages (dành cho kho chứa các trang dự án)

    Ngoài ra, ít nhất một trong những điều sau phải đúng:

    • Bạn là cộng tác viên trên hệ thống lưu trữ hoặc là thành viên của tổ chức sở hữu hệ thống lưu trữ
    • Bạn đã chia nhỏ kho lưu trữ
    • Bạn đã mở một yêu cầu kéo hoặc vấn đề trong kho lưu trữ
    • Bạn đã gắn dấu sao kho lưu trữ

Lưu ý: Sau khi thực hiện cam kết đáp ứng các yêu cầu để được tính là đóng góp, bạn có thể cần đợi tối đa 24 giờ để xem đóng góp xuất hiện trên biểu đồ đóng góp của bạn


1

Tôi vừa thêm lại email của mình thông qua dòng lệnh và nó giải quyết được vấn đề:

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

Và một vấn đề khác là về chi nhánh của bạn. Nếu bạn tạo một nhánh khác bên cạnh maser và cố gắng đẩy nhánh đó, sự cố này có thể xảy ra. Trong trường hợp của tôi, tôi đã bắt đầu thúc đẩy để làm chủ và có giải pháp.


1

Tôi đã gặp vấn đề tương tự và giải pháp khá đơn giản. Tôi đã đặt sai email cho cấu hình email chung

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

Chỉ cần đảm bảo rằng email trên và email tài khoản GitHub của bạn giống nhau


1

Tôi đã khắc phục sự cố tương tự bằng cách Sử dụng tên người dùng của hồ sơ GitHub làm tên người dùng git trong môi trường cục bộ của mình.

Ví dụ,

https://github.com/susithrj

đặt tên người dùng toàn cầu là susithrj trong cấu hình git cục bộ của bạn.

git config --global user.name "susithrj"


0

Tôi đã phải khôi phục máy tính xách tay của mình gần đây và quên định cấu hình lại email của mình thành git. Tên người dùng máy tính xách tay của tôi trông giống với tên git của tôi, vì vậy tôi chỉ mù quáng nghĩ rằng các cam kết của tôi đã được quy chính xác. Như đã đăng, bạn có thể thay đổi cài đặt email chung của mình. Tuy nhiên, nếu bạn muốn sửa các cam kết bị bỏ sót trong dự án của mình, bạn có thể sử dụng tập lệnh chạy này để tạo một bí danh gcamà bạn có thể chạy trong thư mục dự án git của mình để thay đổi quyền tác giả của các cam kết trước đây của bạn.

Từ ~thư mục của bạn , hãy thêm:

$ 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

sau đó trong thư mục dự án git của bạn chạy gca <git username> <git email address>

Đứng lên! Tôi chỉ sử dụng điều này trong các dự án cá nhân của riêng tôi mà tôi là người cam kết duy nhất. Chưa có cơ hội thử nghiệm nó với các dự án nhóm, vì vậy hãy tiến hành một cách thận trọng.


0

Tôi đã kiểm tra phần / tab "Thông tin chi tiết" trong kho lưu trữ của mình và thay vì người dùng hiện tại của tôi, có một người dùng ẩn danh (cũng chính là tôi), vì vậy tôi đã thay đổi cấu hình email trong máy tính hiện tại của mình thành cấu hình mà tôi sử dụng github như đã mô tả ở trên.

Insigths


0

Bạn có thể giữ email của mình ở chế độ riêng tư và các đóng góp vẫn hiển thị trong lịch của bạn. Bạn có thể chọn giữ địa chỉ email của mình ở chế độ riêng tư trong cài đặt email github và sử dụng địa chỉ email github noreply trong cấu hình git của bạn.

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

Ghi chú

Đối với tôi, tôi đã chọn giữ email của mình ở chế độ riêng tư trong cài đặt email github . Điều này đã cho tôi một lỗi

Your push would publish a private email address.

trong khi cố gắng đẩy đến repo của tôi. Tôi đã xóa email. Thúc đẩy sau khi điều này đã thành công nhưng những đóng góp không được ghi vào lịch của tôi.

Như đã được GitHub đề cập trong trang cài đặt email

Chúng tôi sẽ xóa email hồ sơ công khai của bạn và sử dụng xxxxxxxxxxx@users.noreply.github.com khi thực hiện các hoạt động Git dựa trên web (ví dụ: chỉnh sửa và hợp nhất) và gửi email thay mặt bạn. Nếu bạn muốn các thao tác Git dòng lệnh sử dụng email riêng tư của mình, bạn phải đặt email của mình trong Git .


0

Có cùng một vấn đề, tôi đã được khắc phục bằng cách đặt email

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

Hi vọng điêu nay co ich.


0

"Lịch đóng góp" hoặc "Tổng quan về hoạt động" trên github chỉ ghi lại các cam kết có liên quan đến địa chỉ thư được ghi trong tài khoản github.

Thay đổi địa chỉ thư cho tất cả các cam kết trong tương lai

Như đã được lưu ý bởi nhiều người khác trong chủ đề này, hãy tìm kiếm địa chỉ email được lưu cục bộ hiện tại bằng cách:

git config user.email

Nếu nó không khớp với thư trên github, hãy thay đổi bằng cách sử dụng:

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

Điều này sẽ thay đổi toàn cầu địa chỉ thư cho tất cả các cam kết trong tương lai nhưng sẽ không ảnh hưởng đến "Tổng quan về đóng góp" cho các cam kết trước đây. Bạn có thể theo dõi các tài liệu chính thức để biết mô tả mở rộng.

Thay đổi địa chỉ thư để cập nhật tổng quan về các cam kết trước đây

Bạn nhận thấy rằng nhiều cam kết trong quá khứ của mình đã không được ghi lại chính xác trong "Tổng quan về đóng góp" trên Github: nhập mô tả hình ảnh ở đây

Để thay đổi điều đó, bạn có thể thay đổi thông tin tác giả cho các kho lưu trữ bằng cách làm theo các bước được giải thích trong tài liệu github chính thức .

Tóm tắt ngắn gọn:

  1. Mở git bash
  2. Sao chép kho lưu trữ trống

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  3. Dán đoạn mã sau vào bash git console sau khi thay đổi các biến 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. Nhấn enter để chạy tập lệnh

  5. Đẩy lịch sử đã sửa sang github
    git push --force --tags origin 'refs/heads/*'
    

Quy trình này sẽ cập nhật "Tổng quan về đóng góp" và bây giờ cũng hiển thị các cam kết chưa được hiển thị trước đây: nhập mô tả hình ảnh ở đây

Cảnh báo : Hành động này phá hoại lịch sử kho lưu trữ của bạn. Nếu bạn đang cộng tác trên một kho lưu trữ với những người khác, thì việc viết lại lịch sử đã xuất bản được coi là một phương pháp không tốt. Bạn chỉ nên làm điều này trong trường hợp khẩn cấp.


0

Đảm bảo sử dụng cờ người dùng. Ví dụ git push -u origin thay vì git push

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.