[Git Rebase] Git Rebase 合并提交(命令操作 & SourceTree 操作)

前言

在开发过程中, 我们有的时候会有代码提交失误的情况. 在前一章, 我们介绍了git push - - force命令. 本章我们介绍git rebase命令及 SourceTree内的相关操作.

git rebase 与提交纪录重写


当前状况 & 目标

当前状况

在这里插入图片描述
当前状况. 我们可以看到. 当前有2个分支.

  • master 分支: <d53dcf7> -- <de1f522>
  • tmp 分支: <d53dcf7> -- <ad85a6G> -- <b89316c>
  • 目标: 更新tmp分支. <d53dcf7> -- <de1f522> -- <rebase合并 (ad85a6G) / (b89316c)>
目标状况
  • tmp分支: d53dcf7> -- <de1f522> -- <rebase合并节点 (63af0ce)>在这里插入图片描述

SourceTree 操作

  • 首先, 选中当前分支为tmp分支. 选中master分支头节点. 选择交互式变基础.
    在这里插入图片描述

  • 点击squash合并之前的2次提交记录.
    在这里插入图片描述
    在这里插入图片描述
    此处. 如果你想保留之前的提交记录就不用squash了.

  • 点击确定, 发现当前节点状态如下.
    在这里插入图片描述
    注意. 可以发现origin/tmp还是保留那个之前的记录的. 但是新的tmp则不同. 可以明显发现已经rebase了.

  • 推送更新远端 git push --force
    在这里插入图片描述
    注意git push --force一般是在你自己的个人分支上执行. 如果项目组有其他人, 建议提前和其他人交流一下.

[1]. 用了两年git,rebase原来这样用
[2]. [sourcetree] rebase的使用
[3]. 在sourceTree 中使用 rebase (变基)
[4]. git rebase使用笔记


Git 命令方式

非合并变基

  • git rebase -i <基础节点名称>
    在这里插入图片描述
    在这里插入图片描述
    rebase之后. 出现图2. 表示变基内的所有更新. 此处出现文件冲突.

  • 手动合并冲突后. 添加冲突的文件. git add README.md
    在这里插入图片描述

  • git rebase --continue
    在这里插入图片描述
    在这里插入图片描述

  • git push --force 随后更新远端分支即可.


Tips

我们有时候可以放弃rebase操作.

  • rm -fr ".git/rebase-merge"
    在这里插入图片描述
  • git rebase --continue | --abort | --skip

多节点Merge成一个提交

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

# 合并2次提交
pick 50b1ccf [rebase-merge] tmp2 2 in 1. squash.
squash 600a1ca 
  • 解决冲突
    在这里插入图片描述
  • 修改README.md冲突文件
# letcode-all
练尽LetCode所有都题目。 天下没有难写的算法。嘿嘿。

---

<<<<<<< HEAD
### 目录3
=======
Tpm2 -
### 目录
>>>>>>> 50b1ccf... tpm2

* 算法
* 多线程
* SQL

---

### 算法练习目录

提交

git add README.md
git rebase --continue
  • 注意几次提交记录的编写
    在这里插入图片描述
    在这里插入图片描述
  • 成果
    在这里插入图片描述
    如果有需要的话. git push --force同样更新远端即可.

总结

  • 切换到需要Rebase的分支.
  • git rebase -i <节点ID>
  • 单次提交不需要操作. / 合并提交. 更新squash.
  • 无冲突即可成功. / 存在冲突, git add <confilct-file> / git rebase --continue.
  • 需要更新远端git push --force.

Others
git checkout master
git pull
git checkout local
git rebase -i HEAD~2  //合并提交 --- 2表示合并两个
git rebase master---->解决冲突--->git rebase --continue
git checkout master
git merge local
git push

git在工作中正确的使用方式----git rebase篇

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页