变基操作
变基操作(rebase)
让提交记录变得更加简洁
1、第一,多个记录整合成一个记录
- git branch lqz
- 创建分支lqzgit checkout lqz
- 切换到分支lqzvi lqz.txt;git add ;git commit -m '增加lqz.txt'
- 新增lqz.txt,并提交vi lqz1.txt;git add .;git commit -m '增加lqz1.txt'
- 新增lqz1.txt,并提交vi lqz2.txt;git add .;git commit -m '增加lqz2.txt'
- 新增lqz2.txt,并提交git log
- 查看版本日志
- 指定合并从当前版本开始往前的哪个版本(不包含)git rebase -i 8fa035cd6805e8b35ccb9ceee9a9710c9b819b3c
- 把第二行开始,改为s
- 加入注释,合并后的注释git log
- 只能看到合并后的注释了,多次更改变成了一次
注意:已经提交到远程仓库的版本,不要再使用rebase,只合并本地版本提交的几率
2、第二,解决分支合并分叉问题
- 正常merge合并git branch dev,git checkout dev;vi dev.txt;git add .git commit -m 'dev增加dev.txt';git checkout master;vi master.txt;git add .;git commit -m 'master增加master.txt'
- 使用merge合并git merge dev
- 写入注释合并
- 图形化查看版本情况git log --graph
- 使用rebase合并git branch -d dev
- 删除dev分支git branch dev,git checkout dev
- 新建,切换到dev分支vi dev1.txt;git add .;git commit -m 'dev 增加dev1.txt'
- 新建dev1.txt 并提交到版本库git checkout master;vi master1.txt;git add .;git commit -m 'master增加master1.txt'
- 切换到master,新建master1.txt,并提交到版本库git checkout dev;git rebase master
- 切换到dev分支,完成变基git checkout master;git merge dev
- 切换到master,完成合并git log --graph
- 查看,变成了一条线
rebase合并出冲突情况解决
- git branch -d dev
- 删除dev分支git branch dev;git checkout dev
- 新建,切换到dev分支vi lqz.txt
- 在内部增加一行话git add .;git commit -m 'dev 增加lqz.txt'
- 新建lqz.txt 并提交到版本库git checkout master;vi lqz.txt;git add .
- 在内部也增加一行话git commit -m 'master增加lqz.txt'
- 切换到master,新建lqz.txt,并提交到版本库git checkout dev;git rebase master
- 切换到dev分支,完成变基,出现冲突
- 解决冲突vi lqz.txt
- 把冲突解决掉
- 查看状态git status
- git rebase正在进行状态
- 继续往下走git add .;git rebase --continue;git checkout master;git merge dev
- 切换到master,完成合并git log --graph
- 查看,变成了一条线git rebase --continue
3、第三
- git branch -d devgit branch devgit checkout dev
- 删掉dev,重新创建,并切换到dev分支git push origin dev
- 把本地dev同步到远程vi gs.txt;git add .;git commit -m '公司写了代码,提交到本地'
- 忘了提交到远程仓库
- 回家后,继续开发,从远程拉下来mkdir prcd pr;git clone https://gitee.com/liuqingzheng/app01.git
- 把代码克隆下来cd app01;git checkout dev
- 切换到dev分支,此时是没有gs.txt的vi j.txt
- 在家继续开发git add .;git commit -m '家里写了代码';git push origin dev
- 家里写的代码提交到远程仓库
- 第二天来到公司,拉取代码继续开发,如果直接拉取,会分叉
- 不使用git pull 拉取代码,会分叉
- 先 git fetch 拉取git fetch origin dev
- 先拿下来,自定合并代码,使用merge合并会分叉
- 使用rebase合并git rebase origin/dev'''由原来的 git pull origin dev变成git fetch origin dev;git rebase origin/dev
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构