git 中合并已经push 的commit

有时候在改一些bug的时候,需要反复的commit,然后发起pull request时,commit 号就会非常多,有的公司会要求合并这些commit,这时我们可以用 squash 来合并已经提交的commit.

  1. 首先git log 查看已经提交的记录

    git log
    commit 7e1c7e33c328f9c1fc954790386b14978612a30f (HEAD -> newbranch)
    Author: yuanjie111 <[email protected]>
    Date:   Sat Jun 12 13:55:58 2021 +0800
    
    111
    
    commit 3a30ba5c71349947e512c6b0c481854a19418d10 (origin/newbranch)
    Author: **
    Date:   Sat Jun 12 13:03:01 2021 +0800
    
    config center
    
    commit 2873ff1b3c92e9a4b0c4937a5a4a27d5178efe2b
    Author: ***
    Date:   Sat Jun 12 12:48:29 2021 +0800
    
    config center
    
    commit ba62f39480360977e08f6e1e288869f2fe4a7ed8
    Author: ***
    :...skipping...
    commit 7e1c7e33c328f9c1fc954790386b14978612a30f (HEAD -> newbranch)
    Author: ****
    Date:   Sat Jun 12 13:55:58 2021 +0800
    
    111
    
  2. 然后使用 git rebase -i HEAD~

    git rebase -i HEAD~10
    
    //HEAD~10的含义是从头部开始追溯10条记录
    

    git 中合并已经push 的commit_第1张图片
    将需要留下的commit 保持pick 状态,需要合并的改为 s即可,如下图,只保留了一个commit,
    git 中合并已经push 的commit_第2张图片
    然后:wq退出
    3.push 到origin 则完成了合并。

你可能感兴趣的:(git)