您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么修改git全部已提交的用戶名和郵箱”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么修改git全部已提交的用戶名和郵箱”吧!
即:修改git所有commit中的用戶名和email
配置方法:
git config --global user.email "youremail@google.com"
git config --global user.name "your name"
但是補救措施只對以后的 commit 起效。如果想修改之前的作者信息,Github 給出了可靠的官方指南:Changing author info。我打算照做的時候卻發現第三步要復制粘貼的腳本怎么也找不到…后來意識到是 Gist 被墻了 = = 魂淡!
掛上 SS 終于看到了完整腳本…把我翻譯后的完整步驟貼到下面來。
改變作者信息
為改變已經存在的 commit 的用戶名和/或郵箱地址,你必須重寫你 Git repo 的整個歷史。
警告:這種行為對你的 repo 的歷史具有破壞性。如果你的 repo 是與他人協同工作的,重寫已發布的歷史是一種不好的習慣。僅限緊急情況執行該操作。
使用腳本改變你 repo 的 Git 歷史
我們寫了一段能把 commit 作者舊的郵箱地址修改為正確用戶名和郵箱的腳本。
注意:執行這段腳本會重寫 repo 所有協作者的歷史。完成以下操作后,任何 fork 或 clone 的人必須獲取重寫后的歷史并把所有本地修改 rebase 入重寫后的歷史中。
在執行這段腳本前,你需要準備的信息:
欲修改的舊的郵箱地址
正確的用戶名和郵箱地址
1.打開終端(Mac 或 Linux 用戶)或命令行(Windows 用戶)。
2.創建一個你的 repo 的全新裸 clone (repo.git 替換為你的項目,下同)
git clone --bare https://github.com/user/repo.git
cd repo.git
3.復制粘貼腳本,并根據你的信息修改以下變量:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
腳本:
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" 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 --tags4.按
Enter
執行腳本。5.查看新 Git 歷史有沒有錯誤。
6.把正確歷史 push 到 Github:(push 有困難時記得修改 DNS 或者搭×××)
git push --force --tags origin 'refs/heads/*'
7.清除臨時 clone。
cd ..
rm -rf repo.git
All done!現在遺失的 contribution 都回來啦~新的一年記得在 Github 上勤打卡~
感謝各位的閱讀,以上就是“怎么修改git全部已提交的用戶名和郵箱”的內容了,經過本文的學習后,相信大家對怎么修改git全部已提交的用戶名和郵箱這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。