修改 git repo 歷史提交的 author
最近學到了 git 的一招對我來說的新技巧:修改歷史提交的 author。
起因是這樣的,在某天提交程式碼的過程中,發現有幾次歷史提交的 author 資訊不對,可能是 user.name 和 user.email 的資訊被修改了,就像下面這樣:
其實也沒有大不了,但對於像我這種有輕微強迫症的人來說,這是不可接受的。
通過網上查詢,綜合了各種方法,最終實現了預期中的效果,如下所示:
簡要步驟
使用 git rebase -i HEAD~n
命令,表示要修改前 n 次所有的提交。這裡的示例工程,author 資訊最早開始出錯的那次提交出現在 HEAD~3 節點之後,因此這裡的 n 為 3,所以使用 git rebase -i HEAD~3
。-i
中的 i 是 interactive,互動的意思。
輸入此命令後,顯示以下結果:
pick ac0fcc6 add file2
pick a0cbfbe add file3
pick 16ee6eb add file4
# Rebase d57f11f..16ee6eb onto d57f11f (3 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
我們要修改第二行和第三行的提交,根據提示,因此把第二行和第三行的 pick 改成 edit 或 e,儲存退出。
儲存上面的修改並退出後,git 會依次執行上面的操作,當操作為 pick 時,直接 commit。當操作為 edit 時,會中斷,並提示以下資訊:
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
這裡的意思是說,你可以使用 git commit --amend
來修改此次提交,修改以後,覺得滿意了,執行 git rebase --continue
繼續剩下的流程。
由於我們的主要目的是修改提交者的資訊,因此光用 git commit --amend
是不夠的,我們要使用 git commit --amend --author "baurine <2008.hbl@gmail.com>"
這樣的操作,這一點是修改提交者資訊的關鍵所在。
使用上面的命令成功修改此次提交的提交者資訊後,一定要記得執行 git rebase --continue
繼續。
最終完成以後提示如下:
$ git rebase --continue
Successfully rebased and updated refs/heads/master.
Baurine
轉自:http://baurine.github.io/2015/08/22/git_update_author.html
相關文章
- Git提交歷史的修改刪除合併Git
- 基於Git rebase修改歷史提交資訊Git
- git檢視提交歷史Git
- Git 檢視提交歷史Git
- git log提交歷史詳解Git
- git修改歷史內容的方法Git
- git log檢視提交歷史記錄Git
- git簡略形式檢視提交歷史Git
- 二、GIT基礎-檢視提交歷史Git
- Git(7)-- 檢視提交歷史(git log 命令詳解)Git
- 【第八篇】- Git 檢視提交歷史Git
- git log提交歷史顯示不完全Git
- git提交歷史在一行顯示Git
- 檢視提交歷史 —— Git 學習筆記 11Git筆記
- git-清空歷史提交記錄(保留原倉庫)Git
- git 修改提交作者及提交日期Git
- 儲存所有歷史提交資料下遷移git倉庫Git
- [譯] Hexo git deployer 刪除了提交歷史記錄該怎麼整?HexoGit
- Git修改commit提交資訊GitMIT
- git 修改已有commit的提交日期GitMIT
- Git基本命令 -- 歷史Git
- git檢視歷史命令Git
- Git 檢視檔案的歷史Git
- Git批量修改歷史commit中的user.name 和user.emailGitMITAI
- Git的修改提交記錄和變基Git
- Git 修改已提交的commit註釋GitMIT
- 如何修剪git reflog歷史Git
- git重寫歷史記錄Git
- 建立沒有commit提交歷史的新分支MIT
- 如何修改git已提交記錄的郵箱?Git
- git提交時支援檔名大小寫的修改Git
- git 刪除歷史指定檔案Git
- 刪除Git倉庫所有提交歷史記錄,成為一個乾淨的新倉庫Git
- Git修改提交的使用者名稱和EmailGitAI
- git blame檢視檔案由哪次提交修改Git
- Git改變歷史-章節筆記Git筆記
- git刪除歷史中的某個大檔案Git
- Git檢視某個歷史版本的最佳實踐Git