您现在的位置是:首页 >其他 >git rebase的理解网站首页其他

git rebase的理解

浪里个浪里个浪里个浪 2024-06-17 10:19:37
简介git rebase的理解
  1. 首先看下图 比如提价了三次,都是同一个文件的修改,有三次commit的信息 想把提交的版本信息变的好看一点,或者变成一次提交信息
    在这里插入图片描述
// 这个表示要查看提交的三个版本并进行合并
git rebase -i HEAD~~~

// 如何要合并多个版本 
git rebase -i HEAD~4   // 表示合并四个版本  

![(https://img-blog.csdnimg.cn/0b42da152f144cdcadaa554257813a9a.png#pic_center)

在这里插入图片描述
pick 表示使用这次提交 我们想把4,3 的提交记录压缩到2中
可以通过s 表示压缩
通过Shift + I 编辑(Mac)
:wq 保存
在这里插入图片描述
在这里插入图片描述
可以看到将 2 ,3 都压缩到了4这个commit

git merge和get rebase

以文字叙述:
我们以master为主分枝,然后各自通过柱分枝建立了自己的分支,feature1 ,feature2, feature1的任务完成之后 提交到了feature1 ,
然后另外一个同学在feature2上开发了自己的任务测试之后没问题,并且合并到master分枝上了。
然后我切换到主主分枝master 然后gei pull 拉去了最新的代码 ,
然后有一些情况比如你们改了同一个文件,然后你的还在你的feature1上,你的feature1功能没开发,并没有合并,你现在需要拉取主分枝上最新的代码,然后同步到你的feature1上,在进行修改和开发

我们之前的操作是通过get merge 来合并主分枝。如果有冲突,解决冲突之后会产生一个新的commit

我们现在的操作办法是 先切回自己的feature1分制上 ,然后通过get rebase master 意思就是把我们现在的这个feature1分支从新变基到我们的最新的master分支上
如果有冲突 解决完冲突 在执行get add. git rebase --continue 这样不会产生额外的commit信息。
开发完feature1之后 最后要把这个功能同步到master上面去 ,首先切换到master
然后执行 get rebse feature1 这样就同步了最新的feature1的代码

git pull和git pull --rebase区别:git pull做了两个操作分别是‘获取’和合并。所以加了rebase就是以rebase的方式进行合并分支,默认为merge。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。