我想在我的所有提交中更改我的名字,姓氏和電子郵件,這有可能嗎?我可以在以前的所有提交中更改我的姓名嗎?
回答
git filter-branch --commit-filter 'if [ "$GIT_AUTHOR_NAME" = "Josh Lee" ];
then export GIT_AUTHOR_NAME="Hobo Bob"; export [email protected];
fi; git commit-tree "[email protected]"'
這隻影響作者,而不是提交者(對於大多數提交將與作者相同)。如果要重寫這些變量,請設置GIT_COMMITTER_NAME
和GIT_COMMITTER_EMAIL
變量。
關於重寫歷史的standard warning適用;只對歷史尚未分享。
但在Windows上做什麼? – Joshua 2010-12-20 21:57:00
如果你使用'msysgit',你仍然可以訪問'bash'。否則,我不知道。 – 2010-12-20 21:59:17
@Joshua更新,因爲我忘了提交者的信息。 – 2010-12-21 16:00:26
只有當你沒有把你的提交推向世界時。其他每個人都有你的舊名稱在他們的回購,這是不可能的,你可以改變每個人的。
是的,但在某些情況下,你別無選擇。我的情況我有一個錯誤的電子郵件地址配置在我的git配置(我可以看到「git config --global -l」)。因此,我沒有在我自己的Github倉庫中顯示提交活動(因爲電子郵件地址與Github中配置的電子郵件不匹配)!爲了解決這個問題,我使用http://stackoverflow.com/a/23564785/2474068(完美工作)的配方修復了我的本地提交,然後使用「git push -u -f origin master」將更改的提交推送到Github, (帶有強制標誌「-f」)。這違背了公認的做法,但我沒有選擇! – leo 2016-11-10 11:10:52
是的,我的觀點是,除非他們接受你的推動力,否則該回購的任何分支都不會有這種變化。這將是具有挑戰性的,讓每一個叉更新:) – EnabrenTane 2016-11-10 22:01:55
如果沒有其他作者,你可以這樣做:
git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="authorname"; \
export [email protected]; git commit-tree "[email protected]"'
這不是重寫「提交者:」信息。 – user11153 2014-05-04 13:26:58
它不打算重寫提交者信息。如果你想這樣做,請輸出GIT_COMMITTER_NAME和GIT_COMMITTER_EMAIL(請參閱接受的答案)。 – chronospoon 2014-11-03 17:59:57
要在所有選定提交改寫作者和commiter:
git filter-branch --commit-filter \
'if [ "$GIT_AUTHOR_NAME" = "OldAuthor Name" ]; then \
export GIT_AUTHOR_NAME="Author Name";\
export [email protected];\
export GIT_COMMITTER_NAME="Commmiter Name";\
export [email protected];\
fi;\
git commit-tree "[email protected]"'
另存爲以下例如腳本~/.bin/git-replace-author
和使用運行它,e.g:
git replace-author "John Ssmith" "John Smith" "[email protected]"
不帶任何參數,它更新所有你的名字根據混帳配置使用您當前的電子郵件地址提交。
DEFAULT_NAME="$(git config user.name)"
DEFAULT_EMAIL="$(git config user.email)"
export OLD_NAME="${1:-$DEFAULT_NAME}"
export NEW_NAME="${2:-$DEFAULT_NAME}"
export NEW_EMAIL="${3:-$DEFAULT_EMAIL}"
echo "Old:" $OLD_NAME "<*>"
echo "New:" "$NEW_NAME <$NEW_EMAIL>"
echo "To undo, use: git reset $(git rev-parse HEAD)"
git filter-branch --env-filter \
'if [ "$GIT_AUTHOR_NAME" = "${OLD_NAME}" ]; then
export GIT_AUTHOR_NAME="${NEW_NAME}"
export GIT_AUTHOR_EMAIL="${NEW_EMAIL}"
export GIT_COMMITTER_NAME="${NEW_NAME}"
export GIT_COMMITTER_EMAIL="${NEW_EMAIL}"
fi'
Raw(下載)
作爲一個簡短說明:'〜/ .bin /'需要位於用戶'$ PATH'中,並且該文件需要可執行,所以運行:'chmod + x〜/ .bin/git-replace-author'。 – 2018-02-20 14:09:57
- 1. 我可以看到特定提交中的所有文件嗎?
- 2. 在提交新的更改之前更正以前的提交
- 3. 我可以在Google網站提交中更改網站地圖名稱嗎?
- 4. JetBrains IDE:在提交之前,我可以在哪裏注意到我的更改?
- 5. 我可以更改FormsAuthentication cookie名稱嗎?
- 6. 我可以將更改多個mercurial subrepos提交給新的命名分支嗎?
- 7. 我可以更改XmlReader.Settings嗎?
- 8. 我可以更改PendingIntent中的值嗎?
- 9. 我們可以在UITableView中更改當前行的高度嗎?
- 10. 我可以在lua中更改os.tmpname()嗎?
- 11. 我可以在iframe中更改window.top.location嗎?
- 12. 在git中,我可以恢復以前未提交的索引狀態嗎?
- 13. 在Git中,我可以查看分支合併中的所有提交嗎?
- 14. 我可以更改Asana API應用程序的所有權嗎?
- 15. 恢復以前提交狀態的所有更改
- 16. 我可以更改我的網站來提名Facebook使用的圖片嗎?
- 17. 我可以在GitHub中看到合併功能分支的所有提交嗎?
- 18. 我可以在當時更改所有<input>嗎?
- 19. 我可以更改現有索引的名稱嗎?
- 20. 我可以在routes.rb中更改我的map.resources行以更改URL中的模型名稱嗎?
- 21. 我可以提醒我所有的元素嗎?
- 22. 在提交表單之前,我可以等待$ .get()調用嗎?
- 23. 我可以壓縮提交Mercurial嗎?
- 24. 我可以更改Environment.NewLine的價值嗎?
- 25. 我們可以更改ServerVariables的值嗎?
- 26. 更改以前的提交SourceTree
- 27. 我怎麼知道的提交/更改名單之前,我推
- 28. 我可以在Wi-Fi Direct中更改持久組中的組所有者嗎?
- 29. 我可以更改我的開放式ID URL更改嗎?
- 30. 我可以在Wordpress中更改主題名稱嗎?
它是一個reprository只有你,幾個人或一個大的項目? – thejh 2010-12-20 21:06:58
可能的重複[如何更改git中的提交作者?](http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in - git) – 2010-12-20 21:32:55
可能的重複[如何重寫git倉庫中的提交者名稱?](http://stackoverflow.com/questions/1566809/how-do-i-rewrite-committer-names-in-a-git -repository) – 2011-02-28 21:10:31