使用场景
变更分支的基节点,使提交历史更线性、优雅。
模拟场景与使用步骤
步骤1 开发A,开发阶段
代码语言:javascript复制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 分支提交
代码语言:javascript复制git checkout master
touch master_add1
git add .
git commit -m 'commit in master_add1'
git push
步骤3 开发A,开发完毕,准备发布
代码语言:javascript复制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,开发完毕,准备发布
代码语言:javascript复制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
文章目录
- 使用场景
- 模拟场景与使用步骤
- 特别注意
- git rebase 变基动图
- 参考资料
function Catalogswith(){document.getElementById("catalog-col").classList.toggle("catalog");document.getElementById("catalog").classList.toggle("catalog")}