git_修改git历史提交记录

本修改仅限于修改本地的提交,提交的远程的请勿修改,以防引起开发者混乱。
首先执行 git rebase -i HEAD~3 这里首先rebase到HEAD~3的提交,这是你可以修改HEAD~2 - HEAD之间的提交。
此时,git为你提供一个编辑列表,如下:
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file

如下边的提示所说,你可以修改前边的pick,改成edit,表示退出后,git会在那次提交后停下来等待你的进一步修改。此时你可以执行git commit --amend去修改那次提交的注释。或者你可以git reset HEAD^,去撤销那次提交,然后做系列的改动并提交,这样相当于把那次提交拆分成多次提交。然后需要执行 git rebase --continue执行剩下的有pick标记的提交。
你也可以改成squash,表示把所有连续的标记有squash提交与这些行的最上边的那次pick标记的提交合并成一个提交,退出后修改提交说明即可。
你也可以删除某些行,或者颠倒某些行的顺序,表示你要上出那次提交或者颠倒那些提交的顺序。

/*****************************************************/
如果你想批量处理当前branch的所有提交,你可以用git filter-branch命令,该命令会在当前分支的所有提交上上执行参数所描述的操作。如果你要在所有分支的所有提交上执行,可以在后边加上--all选项。
比如,你想在当前分支上的所有提交上山删除一个你不小心提交的密码文件。你可以执行git filter-branch --tree-filter 'rm -f password.txt' HEAD.
另比如,你想修改你的邮箱为新的邮箱,可如下:
git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "oldemail@localhost" ];
        then
                GIT_AUTHOR_NAME="new name";
                GIT_AUTHOR_EMAIL="new email@example.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值