变基操作

变基操作(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 

 

 

 

posted @ 2022-04-22 21:19  那就凑个整吧  阅读(244)  评论(0编辑  收藏  举报