git rebase 入门实践

2023-10-22 15:56:16 浏览数 (2)

使用场景

变更分支的基节点,使提交历史更线性、优雅。

模拟场景与使用步骤

步骤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")}

0 人点赞