当前位置: 首页 > wzjs >正文

网站开发岗位简介网站建设艾瑞市场分析

网站开发岗位简介,网站建设艾瑞市场分析,wordpress centos,手机网站开发升上去一、前言 对于git rebase 一直不太了解,这几天想着提高下git提交质量,就发现了这个好用的指令,顺便记录一下,好加深记忆 贴出官方文档以便大家进一步学习 Git 二、rebase是作用 rebase 官方解释为变基,可以理解为移动你的分支根节点,维护一个更好的提交记录。rebase把你当前…

一、前言

对于git rebase 一直不太了解,这几天想着提高下git提交质量,就发现了这个好用的指令,顺便记录一下,好加深记忆

贴出官方文档以便大家进一步学习 Git

二、rebase是作用

  • rebase 官方解释为变基,可以理解为移动你的分支根节点,维护一个更好的提交记录。rebase把你当前最新分支与其他分支合并时候,会把其他分支的提交记录放在我们当前分支时间线最开始的位置。也就是说,会把我们的提交记录整合在公共分支的后面。
  • 简单来讲,合并本地其他分支 为了不产生多余的分叉,及合并记录时可以使用rebase
  • 接下来我们看一下rebase有哪些应用场景及使用技巧与merge的差异。

三、rebase与merge的差异

  • rebase 会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。就好像你从公共分支又重新拉出来这个分支一样。
  • merge 会把公共分支和你当前的 commit 合并在一起,形成一个新的 commit 提交。

四、应用场景

  • 你刚入公司,技术leader让你以 master 分支为基础,拉出一个分支进行开发需求。此时 master 分支提交记录为 a、b。你在 dev 分支分别 commit 了2次记录为 e、f ,有其他同事在 master 分支提交了两次记录为 c、d 这个时候你要合并master分支代码。

  • 当前分支状态节点如下图所示:

五、使用git merge 进行合并操作

5.1、结论

  1. 如上图所示 merge 会把两个分支合并在一起,形成一个新的 commit 提交记录。
  2. 我们发现 coomit 提交记录是把合并的分支记录放到我们当前dev分支记录的后面。
  3. 并且coomit 提交记录会产生分叉

七、使用git rebase 进行合并操作

  $ git rebase master  // 合并master分支代码$ git log --graph --oneline // 查看log点线图// 符号解释:* 表示一个commit, 注意不要管*在哪一条主线上 | 表示分支前进 / 表示分叉 \ 表示合入

7.1、结论

  1. 首先,我们发现目前 dev 分支上面的提交记录为 abcdef 并没有像 merge 一样产生新的提交记录
  2. 其次 rebase master 分支到 dev 分支, dev 分支的历史记录会添加在 master 分支的后面。
  3. 如图所示,历史记录成一条线,非常整洁,最后并没有像使 merge 一样提交记录产生分叉

八、rebase的使用业务场景

  • 认识到了rebase,让我们来看看有哪些实战场景可以参考使用。

8.1 场景一

  • 经典场景,优化本地提交记录,使其减少分叉。
  • 和上面👆那个经典案例一样,这里就不做重复描述了😁

8.2 场景二

  • 连续性冲突
  • 此时你从master分支拉出一个dev分支来对以v1版本为基础a功能进行需求更改,由于项目经理分功能时,让你的同事也对master分支中的a功能中的某个公共页面a也进行了整改,过一会你同事改完,提交x版本并合并push到了master远程分支上面。此时我们在dev分支完成一次开发提交了v2版本,产品经理过来说,需求有变更,要再做修改,然后我们又以v2的基础上在做修改,并提交为v3版本。过一会测试又提了一个需求建议。我们接着以当前dev分支v3版本为基础做好了整改并commit一个v4版本。到此我们本地假设对页面a修改了三次。同事修改了一次,并push到了远程master上面。那么我们对master分支进行合并到时候就会产生冲突。
  • 简单来讲就是。远程分支 master 对文件a进行了1次 commit ,而别的分支dev对文件A进行了3次commit,但是本地分支dev提交的n次 commit都与master分支的1次commit有冲突,

8.2.1 使用 git rebase 解决冲突

 
$ git fetch  // 更新本地存储的远程仓库的分支引用
$ git rebase origin/master // 拉去远程分支master中的代码与当前分支合并且变基
// 此时我们会产生第一次冲突,为当前dev分支版本v2中的a页面与远程分支master中的a页面冲突。解决后,根据提示进行 
$ git add .
$ git rebase continue // 继续进行合并
// 此时我们会产生第二次冲突,为当前dev分支版本v3中的a页面与远程分支master中的a页面冲突。解决后,根据提示进行 
$ git add .
$ git rebase continue // 继续进行合并
// 此时我们会产生第三次冲突,为当前dev分支版本v4中的a页面与远程分支master中的a页面冲突。解决后,根据提示进行 
$ git add .
$ git rebase continue // 继续进行合并
// 至此我们使用 rebase 变基完成 可以根据产品需求push到远程dev分支
$ git log --graph --oneline // 查看log点线图
// 符号解释:
* 表示一个commit, 注意不要管*在哪一条主线上 
| 表示分支前进 
/ 表示分叉 
\ 表示合入

8.3 结论

1、不会因为像使用 merge 时合代码时遇到冲突产生新的提交记录

2、用 merge 只需要解决一次冲突即,简单粗暴,而用 rebase 的时候 ,需要依次解决每次的冲突,才可以提交。

3、使用 rebase 提交记录不会分叉,一条线干净整洁

4、冲突解决完之后,使用 git add 来标记冲突已解决,最后执行git rebase --continue继续。如果中间遇到某个补丁不需要应用,可以用下面命令忽略:git rebase --skip

5、如果想回到 rebase 执行之前的状态,可以执行:git rebase --abort

8.4 场景三

  1. 你开发的一个需求产品反复更改,导致你的commit记录多次重复功能点
  2. 在日常开发中,难免有重复的commit提交记录.这时候我们想优化一下提交记录该如何做呢
  • 当前分支状态节点如下图所示:

使用git rebase 进行commit记录合并操作
 
 $ git rebase -i HEAD~x  // i(interactive)交互,HEAD~x 代表要合并到距离HEAD最近的几个历史提交,如 HEAD~3就是历史的前3个提交.$ git log --graph --oneline // 查看log点线图// 符号解释:* 表示一个commit, 注意不要管*在哪一条主线上 | 表示分支前进 / 表示分叉 \ 表示合入
  • 这里我们使用git rebase -i HEAD~3,此时我们会出现如下界面,我们进行简单设置

  此时我们会产生一条新的提交记录,并选择填写提交相关信息,并删减掉合并掉的提交记录 

  • 到此我们的合并已结束。

8.4.1 结论

  1. 合并了冗余的提交记录,并产生了一条新的提交记录
  2. 使提交记录看起来更整洁,也方便同事查阅

九、总结

  • 我们发现分享 rebase 全文都是围绕 优化分支提交记录 来举例子介绍该命令,我个人觉得这也就是该命令的核心之处。
  • 在学习 rebase 之前我日常使用的基本都是 merge 导致 commit 记录过于混乱

参考文献

  • # 从git log 点线图(graph)看merge和rebase操作

  • # 从git rebase的常见冲突及解决办法


文章转载自:

http://tE4Bj4EF.mbrbg.cn
http://POUtXpLs.mbrbg.cn
http://5YYBNvTb.mbrbg.cn
http://5WlALL4E.mbrbg.cn
http://mkLPTsCe.mbrbg.cn
http://9O7Rec1u.mbrbg.cn
http://v4l9aLXN.mbrbg.cn
http://CEJuNJAJ.mbrbg.cn
http://ZcZVVKtx.mbrbg.cn
http://gM8bBtUl.mbrbg.cn
http://IU3sUcl1.mbrbg.cn
http://1AcYChsq.mbrbg.cn
http://HpOCp0ZD.mbrbg.cn
http://pHIZ5OQl.mbrbg.cn
http://7bVgYteB.mbrbg.cn
http://WKOwl7g2.mbrbg.cn
http://IcsYf435.mbrbg.cn
http://XUKzdLBA.mbrbg.cn
http://V3w9Tcvc.mbrbg.cn
http://c1E5rNa6.mbrbg.cn
http://UGKiiLP4.mbrbg.cn
http://BDSb90AH.mbrbg.cn
http://qkJBz3fR.mbrbg.cn
http://ziAtzKke.mbrbg.cn
http://DYdbX0GI.mbrbg.cn
http://4nwbt4Uf.mbrbg.cn
http://Ni5Rwdg8.mbrbg.cn
http://k1y90eEI.mbrbg.cn
http://W1m5FKab.mbrbg.cn
http://pzL68pHt.mbrbg.cn
http://www.dtcms.com/wzjs/676930.html

相关文章:

  • 网站怎样绑定域名创意平面设计公司公司排名
  • 企业网站建设相关书籍在线阅读网络营销组合策略
  • 山东省住房城乡建设厅查询网站济南seo外包服务
  • 基于阿里云的网站开发佛山网站营销推广
  • 建设网站cmswordpress模板建站教程
  • 企业网站长度网站建设与运营成本
  • 网站添加悬浮二维码织梦iis7搭建网站教程
  • 周口网站建设费用注册网站时手机号格式不正确
  • 安亭网站建设哪里学网站建设推广
  • 太原建南站网页美化与布局教程
  • 如何制作虚拟网站虚拟主机装2个wordpress
  • 西安网站建设兼职一个主体可以备案几个网站
  • 学什么可以做响应式网站买友情链接
  • 关于建设网站群的报告网站 建设 计划书
  • 网站建设基础方案我国档案网站建设
  • 网站建站的作用南昌优易科 网站建设
  • 网站建设违约合同企业查询官网入口
  • 查询网站用什么做的营销型网站建设和规划
  • 网站二级目录打不开如何在已建设好的网站做修改
  • 设备上哪个网站做外贸推广业网站制作
  • 国外免费建站网站搭建备案上个人网站和企业网站的区别
  • 天津企业网站建设方案教育公司网站建设方案
  • 服务于中小企业建网站外贸网站建设及优化ppt模块
  • app网站开发长沙做网站推广的销售电话开场白
  • 上海网站建设选缘魁中国机床网
  • 葛亚曦设计公司官网seo提高网站排名
  • 四大商业网站小说网站推荐
  • 国内网站不备案ios 集成wordpress
  • 台州企业建站程序网站隐私条款模板
  • 百通互联网站建设杭州观建设计网站