git 重寫歷史,使用心得
¶git 重寫歷史,使用心得
原文連結: https://darkblack02.blogspot.com/2016/12/git.html
移植時的最後更新日期: 2016-12-07T11:55:38.420+08:00
這一招要小心使用。筆者使用的結果(想改兩個commiter和author, 所以掃了很多次之後),commit出現重複的了!QQ
修改提交者資料
列出提交者name與mail
下面指令是查詢目前提交者名稱與mail, 並且依提交次數排序$ git shortlog --numbered --summary --email
下面的指令是查詢目前要修改的commiter的提交內容的author和commiter是長什麼樣子$ git log --pretty=format:"%an<%ae> - %cn<%ce>" --committer=error user name
下面的指令是查詢目前要修改的author的提交內容的author和commiter是長什麼樣子$ git log --pretty=format:"%an<%ae> - %cn<%ce>" --author=error user name
修改歷史中提交者的name與mail
在所有分支內找出所有提交者是error@mail.com,並且改該次commit的提交者name成為right user name,email改成right@mail.com
找出所有作者是error@mail.com,並且改該次commit的作者name成為right user name,email改成right@mail.com
$ git filter-branch --commit-filter ‘
if [ “@”;
else
git commit-tree “GIT_COMMITTER_EMAIL” = "error@mail.com" ];
then
GIT_COMMITTER_NAME=“right user name”;
GIT_COMMITTER_EMAIL="right@mail.com";
git commit-tree “@”;
fi
’ – --all
上傳變更
結束之後,若你修改已push過的commit,那麼在沒有人與你一起協作的情況之下。只要使用下面的指令,即可上傳這樣的改變$ git push -f --all
發表於
tags:
{ Git }