git rebase使用场景

485 阅读1分钟

  1. git rebase 功能

rebase意为变基,常用的两种场景为

git rebase master // 表示变基到本地master分支的最新commit
git pull origin master --rebase // 表示变基到远程master的最新commit

git rebase -i start end // -i是为了合并当前分支的commit

为什么有这两种rebase,因为我们正常合并代码会使用git merge,这样会产生新的commit,而我现在不想要新的commit

  1. 什么时候用git rebase

为了commit看起来工整一些,我们希望其他人提交代码的时候不要有太多commit,甚至最好就产生一个commit,这时候约定使用rebase就会使commit工整(精简)很多

实践

  1. 在master的某个commit拉出一条新分支 develop <~master:git checkout -b develop>
  2. 开发过程生成3个commit,c1,c2,c3
  3. 我想把三个commit合成一个,这时候用git rebase -i指令可以合并成一个 c1
  4. 我想把develop变基到最新master,master最后一次提交为mc2,我希望develop的commit像mc2->c1,这个时候使用git rebase master,或者git pull origin master --rebase
  5. 切换到master分支,<~master:git merge develop>
  6. 更新master代码<~master:git push>