Git服务器(CTP2交易用)地址:http://172.24.118.134:7990,用户名和密码为姓名全拼 ,注意修改密码。

Git服务器(练习用)地址:http://172.24.118.130:7990,用户名和密码为姓名全拼,注意修改密码。

Git 图形界面客户端选用TortoiseGit。

Git分支的本质

Git的分支实质上是一个包含所指对象校验和(一般就是长度为50的字符串)的文件,可以看作指向提交对象的可变指针。

HEAD指向当前所在的分支(将HEAD想像为当前分支的别名),并随着提交操作自动向前移动。当切换/检出时,HEAD也随之移动。

切换分支后,工作里的目录会改变,如果是切换到一个较旧的分支,工作目录会恢复到该分支最后一次提交时的样子。

Git分支的新建、合并与删除

考虑一种复杂场景:在iss53分支上进行了开发,进行了一半,此时又需要在主分支上创建一个hotfix分支进行修改。

7步解决方案:

1)在iss53分支上保存进度(stashing)或者修补提交(commit appending),以下步骤是建立在已经把iss53分支上的修改全部提交的基础上;

2)创建并切换到hotfix分支,修改,提交(提交时请注意添加注释,养成良好习惯);

3)在master分支上将hotfix分支合并回master分支

4) 删除hotfix分支,切换到iss53分支(注意之前在hotfix上所作的工作并没有包含到iss53分支中),继续开发并提交

5)如果需要拉取hotfix所作的修改,可以将master分支合并入iss53分支,或者等iss53分支完成使命后合并回master分支。(该步骤为可选步骤)

6)检出到你想合并入的分支即master分支,执行合并操作,因为分叉了,所以此时的合并其实是一个三方合并(C4、C5和C2),并且自动创建一次合并提交C6

7) 删除iss53分支

遇到冲突时的分支合并

考虑一种场景:当在两个不同的分支中对同一个文件的同一个部分进行了不同的修改,Git就无法顺利合并。比如当对iss53的修改和hotfix的修改都涉及到同一个文件的同一处,在合并时就会产生冲突。此时任何因包含合并冲突而有待解决的文件都会以未合并状态标识出来。

手动解决冲突的办法是:仅保留一个分支的修改,添加,处于暂存区就表明冲突已被解决。

分支开发工作流与分支策略(branching scheme)

1)长期分支/稳定分支

简单而言,思想就是:经过测试考验的提交会被遴选到更加稳定的流水线(work silos)上去,可以用这种方法维护不同层次的稳定性。

2)特性分支/短期分支/临时分支

简单而言,思想就是:工作被分散到不同的流水线。

上一节中涉及的iss53分支和hotfix分支都属于特性分支,之所以是短期分支,是因为将他们合并(等待成熟之后再合并也不迟)入长期分支后就删除了。

远程分支

前面所述的分支存于本地,分支操作也是发生于本地,并没有与服务器发生交互。

origin是当你运行Git 克隆命令时默认的远程仓库的名字,同理,默认的远程分支的名字是origin/master,如下图所示:

这时很容易产生这样的场景,别人推送至服务器的master分支了,你还在本地的分支上折腾。

此时需要用到拉取PULL功能:查找origin是哪一个服务器,从中抓取本地没有的数据,更新本地数据库,移动origin/master指针指向新的、更新后的位置。

推送PUSH

如果希望和别人一起在名为serverfix的分支上工作,那就推送本地的serverfix分支来更新远程仓库上的serverfix分支,这样下一次项目的其它协作者从服务器上抓取(有待确定)数据时,会在他们的本地生成一个远程分支origin/serverfix,指向服务器的serverfix分支的引用,然后在其本地创建一个serverfix分支。

删除远程分支:假设已经通过远程分支(比如这个serverfix)完成所有的工作了,意思就是你和你的协作者已经完成了一个特性并且将其合并到了远程仓库的master分支,那么就可以删除了(在本地就可以删除远程分支了)

抓取FETCH

该操作会查找当前分支所跟踪的服务器与分支,然后抓取克隆后或者上一次抓取后新推送的所有工作到你的本地仓库,但不会自动合并或修改你当前的工作,需要手动合并。

拉取PULL

一般是抓取+合并一起执行,该操作会查找当前分支所跟踪的服务器与分支,然后从服务器抓取数据,最后合并远程分支到当前分支。

转载于:https://www.cnblogs.com/SAPCE/p/8182355.html

TortoiseGit 分支管理策略相关推荐

  1. git使用指南及分支管理策略

    Git是什么? Git是一个开源的分布式的版本管理工具. 为什么要使用GIt? Git是目前世界上最先进的版本管理工具,尤其在分支管理上表现突出,能够极为方便地解决开发中的版本问题. Git如何使用? ...

  2. Git 分支管理策略

    分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其 ...

  3. Git 企业中常用分支管理策略

    Git 企业中常用分支管理策略 一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它 ...

  4. 【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略

    一.以普通模式合并(--no-ff) 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,啥?不记得啦?那等会我们学习完给你再举个栗子吧,看看这个f ...

  5. git master主分支_Git分支管理策略及简单操作

    前几天整理了一下之前项目的开发代码,当时使用了Git来进行代码版本管理.虽然本人熟悉常用的Git操作,但是对分支的管理经验非常欠缺.拿这个项目来说,在项目中有不下20个分支,每个分支间的继承关系相当之 ...

  6. Git学习系列(六)解决分支冲突及分支管理策略

    2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...

  7. devops 分支管理策略_DevOps招聘策略以吸引顶尖人才

    devops 分支管理策略 我不经常和招聘人员交谈. 实际上,我通常不与第三方招聘人员合作,因为很多时候,他们只对填写一份工作要求,收取佣金并转到下一个职位感兴趣. 此外,大多数招聘人员并不真正了解具 ...

  8. Git进阶(五):git 分支管理策略

    文章目录 一.企业级项目分支策略 1.1 主分支 master 1.2 开发分支 develop 1.3 功能分支 feature 1.4 预发布分支 release 1.5 bug 分支 fixbu ...

  9. (GIT)代码分支管理策略

    一.我们采用的管理策略(分支开发主干发布) 1. 主分支(master),用于发布,每次发布时打一个(tag),不做任何开发使用 拉取源:无 合并目标:无 修改:不允许 生命周期:持续 2. 开发分支 ...

最新文章

  1. PowerBuilder 11.x 的重要进步和不足
  2. maven项目出现如下错误,求指点;CoreException: Could not calculate build plan:
  3. SAP MM 采购附加费计入物料成本?
  4. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具
  5. 一个项目学会前端实现登录拦截
  6. 快准牌电脑发软件_电脑如何下载软件
  7. 第四十八期:你太菜了,竟然不知道Code Review?
  8. 蓝色巨人IBM全力奔赴的混合云之旅能顺利吗?
  9. snoopy php https_php使用snoopy与curl模拟登陆的实例分享
  10. Ubuntu14.04 install appium
  11. 电脑、手机装机必备软件的抉择[土豆-侃天下]
  12. 计算机毕业设计ssm高校选课系统uu27m系统+程序+源码+lw+远程部署
  13. RFID工作原理(图)及标签分类(按供电方式)
  14. 方维直播源码搭建详细流程
  15. pycharm复制一行
  16. ARM9开发板Qt环境的搭建
  17. java多种货币的相互转换_使用java将不同的国家货币转换为双倍
  18. 热乎乎的蚂蚁金服面经分享,offer已到手建议收藏(Java岗、附答案解析)
  19. java应用 cpu占用过高问题分析及解决方法
  20. 伴随着Web标准发展

热门文章

  1. 【机器学习】机器学习从零到掌握之八 -- 教你读懂决策树原理
  2. 聊聊Top2计算机博士2021年就业选择
  3. 30篇「CVPR2020」最新论文抢先看!看计算机视觉2020在研究什么?
  4. linux安装时键盘失灵,在archlinux安装界面这卡住了,鼠标键盘失灵
  5. C++语言程序设计第五版 - 郑莉-绪论(一)
  6. 解决jupyter botebook打不开,修改jupyter botebook工作目录失败问题
  7. 深度学习(六十八)darknet使用
  8. 山师计算机学硕分数线,2020山东师范大学考研复试分数线已公布
  9. 渗透测试入门7之权限维持
  10. Android进阶2之图片倒影效果 .