2016-09-22 3 views
0

Недавно я сделал некоторые коммиты без конфигурации user.email. Есть ли способ отредактировать те коммиты, которые будут признаны в качестве вклада в мой профиль GitHub. (Не там вы не совершить электронную почту - добавить в качестве GitHub счета - как вы можете увидеть в журнале сильфоне)Github недействительный адрес электронной почты автора, никакой активности вклада

Вот некоторые последние фиксации из команды журнала мерзавца:

(последний/первый один с электронной почтой является после того, как я настроил 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" 

Это сбросит автора выбранного фиксации.

Смежные вопросы