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

公司网站开发维护搜狗推广登陆

公司网站开发维护,搜狗推广登陆,施工企业安全资质审查系统,seo网站优化怎么做一、概述 merge和rebase 标题上的两个命令:merge和rebase都是用来合并分支的。 这里不解释rebase命令,以及两个命令的原理,详细解释参考这里。 下面的内容主要说的是两者在实际操作中的区别。 1.1 什么是分支 分支就是便于多人在同一项目…

一、概述

merge和rebase
标题上的两个命令:merge和rebase都是用来合并分支的。

这里不解释rebase命令,以及两个命令的原理,详细解释参考这里。

下面的内容主要说的是两者在实际操作中的区别。

1.1 什么是分支

分支就是便于多人在同一项目中的协作开发。比方说:每个人开发不同的功能,在各自的分支开发过程中互不影响,完成后都提交到develop分支。极大的提高了开发的效率。

1.2 合并分支

每个人创建一个分支进行开发,当开发完成,需要合并到develop分支的时候,就需要用到合并的命令。

1.3 什么是冲突

合并的时候,有可能会产生冲突。

冲突的产生是因为在合并的时候,不同分支修改了相同的位置。所以在合并的时候git不知道哪个到底是你想保留的,所以就提出疑问(冲突提醒)让你自己手动选择想要保留的内容,从而解决冲突。

标题二、merge和rebase的区别

2.1 区别

采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit,rebase会保留所有的commit:
在这里插入图片描述
在这里插入图片描述

rebase会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。就好像你从公共分支又重新拉出来这个分支一样。
举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。
在这里插入图片描述
merge 会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交

在这里插入图片描述
处理冲突的方式:

(一股脑)使用merge命令合并分支,解决完冲突,执行git add .和git commit -m’fix conflict’。这个时候会产生一个commit。
(交互式)使用rebase命令合并分支,解决完冲突,执行git add .和git rebase --continue,不会产生额外的commit。这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。
git pull和git pull --rebase区别:git pull做了两个操作分别是‘获取’和合并。所以加了rebase就是以rebase的方式进行合并分支得到一条干净的分支流

 git pull = git fetch + git merge FETCH_HEAD git pull --rebase =  git fetch + git rebase FETCH_HEAD  
git rebase --continue; 让 rebase 过程继续执行。
git rebase --abort; 发生代码冲突后,放弃合并,回到操作前的样子。

2.2 git merge 和 git merge --no-ff的区别

1、我自己尝试merge命令后,发现:merge 时并没有产生一个commit。不是说merge时会产生一个merge commit吗?

注意:只有在冲突的时候,解决完冲突才会自动产生一个commit。

如果想在没有冲突的情况下也自动生成一个commit,记录此次合并就可以用:git merge --no-ff命令,下面用一张图来表示两者的区别:

在这里插入图片描述
2、如果不加 --no-ff 则被合并的分支之前的commit都会被抹去,只会保留一个解决冲突后的 merge commit。

标题三、如何选择合并分支的方式

我的理解:主要是看哪个命令用的熟练,能够有效的管理自己的代码;还有就是团队用的是哪种方式。

我对于rebase比较熟悉,所以我一般都用rebase,但是现在的公司用的是merge --no-ff命令合并分支。所以,我在工作上就用merge,个人项目就用rebase。

也可以两者结合:

获取远程项目中最新代码时:git pull --rebase,这个时隐性的合并远程分支的代码不会产生而外的commit(但是如果存在冲突的commit太多就像上面说的,需要处理很多遍冲突)。

合并到分支的时候:git merge --no-ff,自动一个merge commit,便于管理(这看管理人员怎么认为了)

注意:
不要在公共分支使用rebase
本地和远端对应同一条分支,优先使用rebase,而不是merge
抛出问题:

为什么不要再公共分支使用rebase?
因为往后放的这些 commit 都是新的,这样其他从这个公共分支拉出去的人,都需要再 rebase,相当于你 rebase 东西进来,就都是新的 commit 了

1-2-3 是现在的分支状态
这个时候从原来的master ,checkout出来一个prod分支
然后master提交了4.5,prod提交了6.7
这个时候master分支状态就是1-2-3-4-5,prod状态变成1-2-3-6-7
如果在prod上用rebase master ,prod分支状态就成了1-2-3-4-5-6-7
如果是merge
1-2-3-6-7-8
… |4-5|
会出来一个8,这个8的提交就是把4-5合进来的提交
merge和rebase实际上只是用的场景不一样
更通俗的解释一波.
比如rebase,你自己开发分支一直在做,然后某一天,你想把主线的修改合到你的分支上,做一次集成,这种情况就用rebase比较好.把你的提交都放在主线修改的头上
如果用merge,脑袋上顶着一笔merge的8,你如果想回退你分支上的某个提交就很麻烦,还有一个重要的问题,rebase的话,本来我的分支是从3拉出来的,rebase完了之后,就不知道我当时是从哪儿拉出来的我的开发分支
同样的,如果你在主分支上用rebase, rebase其他分支的修改,是不是要是别人想看主分支上有什么历史,他看到的就不是完整的历史课,这个历史已经被你篡改了

常用指令

git rebase -i dev 可以将dev分支合并到当前分支

这里的”-i“是指交互模式。就是说你可以干预rebase这个事务的过程,包括设置commit message,暂停commit等等。

git rebase --abort 放弃一次合并

合并多次commit操作:

1 git rebase -i dev
2 修改最后几次commit记录中的pick 为squash
3 保存退出,弹出修改文件,修改commit记录再次保存退出(删除多余的change-id 只保留一个)
4 git add .
5 git rebase --continue
6 git push origin 开发分支
http://www.mmbaike.com/news/102003.html

相关文章:

  • 备案 网站负责人 法人加速游戏流畅的软件
  • 吴中seo网站优化软件seo系统优化
  • 无锡设计师网站百度关键词规划师入口
  • 如何在别人网站挂黑链重庆专业seo
  • 郑州做网站助企注册网站怎么注册
  • 五金加工厂怎么做网站宁夏百度公司
  • 精品课程网站怎么做最近新闻热点国家大事
  • 做网站推广的价格手机优化助手下载
  • php网站设计活动软文模板
  • 中国代加工网站黄冈网站推广厂家
  • 广告公司管理软件北京网站营销seo方案
  • 响应式网站建设市场石家庄网络推广优化
  • 用dw制作购物网站首页网站关键词在哪里看
  • 网站怎么做子页企业网站制作方案
  • 昆明做网站建设公司手机如何制作一个网页链接
  • 做网站现在什么尺寸合适seo服务商技术好的公司
  • 顺义做网站公司google推广工具
  • 网站建设合同封面谷歌seo快速排名优化方法
  • 运维网站制作百度推广步骤
  • 网站建设的主要职责谷歌浏览器网址
  • 深圳企业网站怎么做免费b站推广短视频
  • 成都 网站建设培训学校aso安卓优化
  • 建企业网站浩森宇特新闻类软文营销案例
  • 中国著名的个人网站长沙网站seo排名
  • 西宁网站建设高端百度推广页面投放
  • 50强网站开发语言下载微信
  • 天津做优化的网站有多少家关键字搜索
  • 增城百度做网站多少钱职业技能培训中心
  • 济南会做网站的公司宁波seo快速优化
  • wiki网站开发工具站长工具seo词语排名