git rebase 避免丑陋的分支merge

原作者:QIQI_DS
原地址:https://blog.csdn.net/qq_42648305/article/details/113104152

在这里插入图片描述
把自己的改动提交为一个commit之后

 git pull origin dev --rebase

它会先pull dev的内容,然后把自己的commit放在最后面。
优点是不会有merge那样分支合进来的git graph,而是一条直线

(aiops_api_py36)  ✘ aaa@aaa-MB1  ~/Documents/Z00_存档本地/Z30_projects/pizza_py3/pizza/aiops   rt_lines_api_simplified  git pull origin dev --rebase
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From http://gitlab/api
 * branch            dev        -> FETCH_HEAD
   f50aa57..80eb0c6  dev        -> origin/dev
First, rewinding head to replay your work on top of it...
Applying: feature: preview API

git rebase 操作之后如何撤回

git reflog

在这里插入图片描述

可知本次rebase之前的id 为:
02a3260 HEAD@{9}: commit: adjust ds5 ir data save file formate

所以执行

git reset --soft 02a3260

参考

使用 git rebase 避免無謂的 merge
git最佳实践
git rebase 撤回(但不要用它的reset --hard选项)

点赞