2016-09-22 88 views
0

最近,我做了一些提交沒有配置user.email。有什麼方法可以編輯這些提交以在我的GitHub配置文件中被認可爲貢獻。 (有沒有要提交郵件 - 添加爲GitHub的帳號 - 你可以在日誌波紋管見)Github無效作者電子郵件提交,無貢獻活動

這裏是一些最近從git的日誌命令提交:

(最後/第一次使用電子郵件是提交後我配置user.email)

commit 4ae6cc5c00e380c70072f9647b29dc242d2682d1 
Author: Tin Nguyen <[email protected]> 
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 
... 

回答

0

好吧,如果你不與別人分享你的工作(如果他們不拉/克隆/叉它尚未),你可以通過做一個互動變基,例如編輯這些:

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 <[email protected]>" --no-edit 
git rebase --continue 
#repeat the two last steps until done 

或更復雜,但速度更快(一個班輪):

git filter-branch --env-filter 'GIT_AUTHOR_EMAIL="[email protected]"' c6b3af19^..HEAD HEAD 

使用或不使用filter-branch(請注意,您必須正確設置你的名字和全球電子郵件):

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

請注意,兩者都會覆蓋作者信息從c6b3af19到您所做的最後一次提交,如果您有其他最近提交的作者,則它們不完整。

注意,在任何情況下,您將不得不執行強制推到遠程存儲庫,與git push -f


在任何情況下,我建議你在嘗試做這個之前創建一個新的分支有種改變。如果發生錯誤,也可以使用reflog進行恢復,或者僅使用git checkout 4ae6cc5c,這是您迄今爲止的最新提交。但作爲一個經驗法則,我認爲在做任何歷史重寫之前最好進行分支。

0

git rebase和git commit -amend將幫助您更新用戶電子郵件。 rebase and amend

update user email

+0

儘管此鏈接可能回答問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/13755980) – Garf365

+0

有道理。會這樣做。謝謝 – Cyclotron3x3

0

配置您的用戶名和電子郵件與git config和嘗試這個辦法:

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

這將重置筆者選定提交。