Github无效的作者电子邮件提交,没有贡献活动

时间:2016-09-22 06:42:06

标签: git github

最近,我做了一些没有config user.email的提交。有没有办法编辑这些提交,以便在我的GitHub配置文件中被识别为贡献。 (那里没有提交电子邮件 - 添加为GitHub帐户 - 正如您在日志中所见)

这里有一些git log命令的最近提交:

(在我配置user.email之后提交了最后一个带电子邮件的人)

commit 4ae6cc5c00e380c70072f9647b29dc242d2682d1
Author: Tin Nguyen <my-Gmail@gmail.com>
Date:   Thu Sep 22 11:00:30 2016 +0700

    delete some unnecessary code

commit 275362c077bb0495318d37b965c90beba2cb79b3
Author: Tin Nguyen <Tin Nguyen>
Date:   Wed Sep 21 07:41:51 2016 +0700

    modify database rules

commit c6b3af19c24627cafd862eff7449bc5d3f95cfbc
Author: Tin Nguyen <Tin Nguyen>
Date:   Sun Sep 18 14:14:23 2016 +0700
...

3 个答案:

答案 0 :(得分:0)

git rebase和git commit -amend将帮助您更新用户电子邮件。 rebase and amend

update user email

答案 1 :(得分:0)

使用git config配置您的用户名和电子邮件,然后尝试:

git rebase -i YOUR_COMMIT_SHA -x "git commit --amend --reset-author -CHEAD"

它将重置所选提交的作者。

答案 2 :(得分:0)

好吧,如果您没有与其他人分享您的工作(如果他们还没有拉/克隆/分叉),您可以通过执行交互式rebase来编辑它们,例如:

git rebase -i c6b3af19^
# change the comits you want to edit to "e" or "edit", leave the other on "p", "pick"
git commit --amend --author "Tin Nguyen <my-Gmail@gmail.com>"  --no-edit
git rebase --continue
#repeat the two last steps until done

或者更复杂但更快(单线):

git filter-branch --env-filter 'GIT_AUTHOR_EMAIL="my-Gmail@gmail.com"' c6b3af19^..HEAD HEAD

或者不使用filter-branch(请注意,您必须在全球范围内正确设置姓名和邮件):

 git rebase c6b3af19^ --exec 'git commit --amend --no-edit --reset-author'

请注意,两者都会覆盖从c6b3af19到最后一次提交的作者身份信息,如果您有其他最近提交的作者,则这些信息不完整。

请注意,在每种情况下,您都必须使用git push -f强制推送到远程存储库

无论如何,我建议您在尝试进行此类更改之前创建一个新分支。如果发生了不好的事情,你也可以使用reflog来恢复,或者只是git checkout 4ae6cc5c,这是你最近的最新提交。但根据经验,我认为在进行任何历史记录重写之前最好进行分支。