Rebase英文翻译变基,是用来把版本的提交日志进行合并整合,让我们看起来更加清晰的一种机制,简而言之就是修剪提交历史基线
主要有以下三种应用场景
程序员小林本地编写并提交了n个版本,这n个版本对小林来说是有用的,但对于他人来说是无意义的,所以我们没必要将这n个版本都跟整个分支一起推送到远程仓库,我们现在本地将这n个版本的提交记录合并成为一条然后再跟随整个分支一起推送到远程仓库,这个样子,大家都清晰了
=====================>步骤一:先在本地开发、提交3个版本<=====================
| echo rebase_test111 > p2.txt |
| git add . |
| git commit -m "v1" |
| |
| echo rebase_test222 > p3.txt |
| git add . |
| git commit -m "v2" |
| |
| echo rebase_test333 > p4.txt |
| git add . |
| git commit -m "v3" |
| |
| echo rebase_test444 > p5.txt |
| git add . |
| git commit -m "v4" |
| |
| echo rebase_test555 > p6.txt |
| git add . |
| git commit -m "v5" |
=====================>步骤2: 查看日志<=====================
| linhaifeng01@appledeMacBook-Pro test % git log --pretty=format:'%h: %s' |
| 497d5e0: v5 |
| b48d849: v4 |
| 0290662: v3 |
| 9fffd4c: v2 |
| c69d302: v1 |
| linhaifeng01@appledeMacBook-Pro test % git log --graph --pretty=oneline --abbrev-commit |
| * 497d5e0 (HEAD -> master) v5 |
| * b48d849 v4 |
| * 0290662 v3 |
| * 9fffd4c v2 |
| * c69d302 v1 |
| linhaifeng01@appledeMacBook-Pro test % |
=====================>步骤3<=====================
| |
| linhaifeng01@appledeMacBook-Pro test % git rebase -i 9fffd4c |
| |
| 注意 git rebase -i [startPonit] [endPoint] |
| 前开后闭 区间 这里的 [startPonit] 是指需要合并的commit的前一个commit (即当前示例中的 “4cb600e: feat: modify a”)。 因为, 三个commit肯定要基于上一个commit合并成了新的commit。 |
| 谨慎使用[endPoint] 省略, 即默认表示从起始commit一直到最后一个,但是一旦你填写了, 则表示 [endPoint]后面的commit全部不要了! |
| |
| |
查看最新合并情况
| |
| linhaifeng01@appledeMacBook-Pro test % git log --graph --pretty=oneline --abbrev-commit |
| * a806510 (HEAD -> master) v345 |
| * 9fffd4c v2 |
| * c69d302 v1 |
=====================>步骤4、将变基后的分支push到远程库<=====================
| linhaifengdeMacBook-Pro:pro linhaifeng$ git branch |
| * dev |
| master |
| linhaifengdeMacBook-Pro:pro linhaifeng$ git push origin dev |
=====================>rebase其他用法<=====================
提炼:
| git rebase -i 版本号 |
| |
| git rebase -i HEAD~3 |
| |
| 注意:尽量不要合并已经提交到远程仓库的记录,尽量合并本地的、从未提交到远程的记录,否则,远程的日志记录与本地不一致将会更乱 |
| |
| 推荐阅读:https://blog.csdn.net/small_white_123/article/details/121563248 |