Git如何修改已提交Change

我们可能比较熟悉并且常用的命令是git --amend来修改上次提交的commit message, 如果要修改再以前的commit,这个命令必须配合git rebase -i HEAD~n 命令来实现。注意“n"表示你列出自上次提交后最近的几次提交,此命令会列出最近n次的提交,你需要将”pick"改成“s"来表示要修改这个commit,然后将修改后的文件用git add加到暂存区,执行git --amend修改变当前commit,最后执行git rebase --continue接受此此修改,你所在的当前分支会自动rebase这个change,如果后面有commit也修改到这个文件,那么git会要求你去resolve conflicts.

简单来讲,分以下几步完成:

  1. git rebase -i HEAD~n
  2. 修改文件
  3. git add暂存修改后的文件
  4. git commit --amend修改commit message并将文件提交到这个commit中
  5. git rebase --continue
下面通过一个实例来讲解:


分支 push_apac 最近有8个commit,在代码code-review的时候发现commit "Support Quick Spell for Hydra Pinyin & JPN keyboard"需要修改

文件GUI_SearchInterface.hpp的下面代码需要移除
#if( SEARCH_MULTI_ENTRY_SUPPORT )
            //----------------------------------------------------------------------------
            //! performMultiEntrySearch
            //!
            //! @return the Search Result List
            //----------------------------------------------------------------------------
            ....
#endif

执行git rebase -i HEAD~4, 列出最近4次commit
gi

将第一个commit的"pick"改成”e",表示要编辑当前的commit

Git出现下面的提示


修改文件GUI_SearchInterface.hpp

执行git add GUI_SearchInterface.hpp

执行git commit --amend

执行git rebase --continue


这样就完成了在修改之前提交commit的目的,很快速。当然还有一种方法就比较麻烦,就是采用新建临时分支,然后使用git cherry-pick的方法,这样的原理简单,但操作比较麻烦,就不介绍了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值