git rebase 入门实践
使用场景
变更分支的基节点,使提交历史更线性、优雅。
模拟场景与使用步骤
步骤1
开发A,开发阶段
git checkout -b feature/test1
touch feature_test1
git add .
git commit -m 'commit in feature/test1'
git push --set-upstream origin feature/test1
步骤2
开发B,在 master 分支提交
git checkout master
touch master_add1
git add .
git commit -m 'commit in master_add1'
git push
步骤3
开发A,开发完毕,准备发布
git checkout feature/test1
git rebase master # 开发分支变基
git push --force-with-lease # 开发分支变基后,强制改变远程分支,若 --force-with-lease 失败,则可能需要更新开发分支 [git pull --rebase]
git checkout master
git merge --squash feature/test1
git commit -m 'git merge --squash feature/test1'
git push
上述步骤3可有更佳实践,在合入 master 时进行压缩可以让 master 分支更 ”清爽“,即:
步骤3
开发A,开发完毕,准备发布
git checkout feature/test1
git rebase master # 开发分支变基
git push --force-with-lease # 开发分支变基后,强制改变远程分支,若 --force-with-lease 失败,则可能需要更新开发分支 [git pull --rebase]
git checkout master
git merge --squash feature/test1
git commit -m 'git merge --squash feature/test1' # 经过 --squash 压缩后,拉出所有变更内容,需要 commit 一次
git push
特别注意
一旦开发分支中 feature/test1,有节点被其它分支依赖(如:被 master 分支 merge,或其它开发分支 feature/test2 merge,则 feature/test1 就不要再用 rebase 了,否则大概率事故)
git rebase 变基动图
参考资料
https://cloud.tencent.com/developer/article/1341129
https://zhuanlan.zhihu.com/p/132573100
文章目录
打赏: 微信
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。