2013-09-01 33 views
8

Khi tôi cam kết một tập tin từ Git Bash trên máy tính của tôi và đẩy nó trên GitHub, tôi không công nhận là tác giả của cam kết:tác giả không được nhận

Unrecognized author

Khi trỏ về các dấu hỏi, ở đây là thông báo được hiển thị:

Tác giả không được công nhận. Nếu đây là bạn, hãy đảm bảo địa chỉ email bạn đã sử dụng để cam kết được liên kết với tài khoản của bạn. Bạn có thể thêm email vào tài khoản của mình trong Cài đặt.

Vấn đề là tôi đã kiểm tra nhiều lần và tôi có thể đảm bảo với bạn hai địa chỉ email tương ứng.

git config --global user.email

Hiển thị địa chỉ e-mail cùng chính xác được đưa ra trong Email settings of GitHub.

Tôi sử dụng Windows 7 và tôi kết nối với SSH với kho lưu trữ từ xa.

Trả lời

9

Sử dụng git show hoặc git show <commit-SHA> để kiểm tra xem email của tác giả cam kết có chính xác hay không. Nếu không, hãy sử dụng git config user.email "<your-email>" vì bạn có thể đã thay đổi cài đặt đó cho repo cụ thể đó, mặc dù cấu hình chung của bạn.

+0

Cảm ơn, 'git show' không hiển thị địa chỉ e-mail chính xác và tôi đã sử dụng lệnh của bạn để thay đổi nó. Nó hoạt động. –

0

OK, tôi đã tìm thấy giải pháp.

Về cơ bản, git config --global user.email chứa địa chỉ email tốt nhưng git config user.email thì không.

Vì vậy, tôi chỉ phải sửa đổi địa phương và hoạt động. Tuy nhiên, không biết tại sao.

+0

Bạn có thể chạy 'git config user.email' trên repo đó trước khi thực hiện commit đó. Hoặc chạy 'git config --global user.email' _after_ mà cam kết. – mgarciaisaia

25

Để thiết lập đúng tên và email cho tương lai của bạn cam kết:

git config --global user.name "John Doe" 
git config --global user.email [email protected] 

Nếu bạn muốn để sửa chữa cam kết unauthored trước đó của bạn, hãy làm theo các Github documentation:

  1. Làm git show và nhớ email đã được sử dụng:

    $ git show 
    commit ca44c93b9433346f858676a8f1b83f3d9757ec65 
    Author: John Doe <[email protected]> 
    
  2. Tạo một bản sao trần của kho lưu trữ của bạn:

    git clone --bare https://github.com/user/repo.git 
    
  3. Thay OLD_EMAIL, CORRECT_NAMECORRECT_EMAIL, sau đó cd đến kho lưu trữ của bạn và dán đoạn mã. Bấm phím Enter.

    #!/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. Force push to Github:

    git push --force --tags origin 'refs/heads/*' 
    
+0

Cảm ơn giải pháp, đã làm việc cho tôi và có số liệu thống kê GitHub của tôi trở lại bình thường. – Noah

+0

Bumping này như là câu trả lời được đề nghị. – cheshireoctopus

Các vấn đề liên quan