本节介绍分支的一些具体应用实例。

1.Bug分支

设想我们正在分支dev上工作,突然接到一个修复bug的命令,我们需要创建分支issue-101来修复它,在此之前我们肯定需要先保存我们当前未完成的工作,命令git stash可以帮助我们安全地储

藏当前的分支,当我们完成bug的修复需要回到dev上继续工作时,我们首先切换到dev分支上,然后有两种方式恢复dev的工作内容,第一种是git stash apply,但是恢复后,stash内容并不删

除,我们还需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时也会把stash的内容删除。

2.Feature分支

开发软件的过程中,总会有新的功能添加进来。添加一个新功能时,我们肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面

开发,完成后合并到master,最后再删除该feature分支。

假如我们现在新建一个分支feature-vulcan,开发完毕后用add+commit提交到本地库,现在我们回到dev准备合并,突然接到命令取消当前开发,我们需要就地删除分支feature-vulcan,使用命令

git branch -d feature-vulcan即可,如果失败我们可以用git branch -D feature-vulcan强制删除。

3.多人协作

当我们从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin(非常便捷无需自己动手)

我们可以用命令git remote 或 git remote -v来查看远程库的相关信息(后者更详细)。

4.推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:比如说命令git push origin master可以把本地

master本地分支推送到远程origin分支上,而命令git push origin dev就是把分支dev上的内容推送到origin。

5.抓取分支

多人协作时,大家都会往远程的masterdev分支上推送各自的修改。我们可以用命令git clone git@github.com:michaelliao/learngit.git从远程库克隆,然后我们准备在分支dev上开发,我们就需

要先在本地创建一个dev分支与远程origin下的dev分支对应起来,命令git checkout -b dev origin/dev就可以帮我们做到,现在我们就可以在本地dev上修改,然后实时与远程dev保持同步。

但是如果刚刚有一个队友推送了新的dev,我们恰好也准备推送,这时git会提示操作失败。我们需要先用git pull把最新的dev抓取到本地,在上面进行修改合并,然后才能继续push到远程。注意

这里我们需要保证本地的dev与远程的origin/dev实现正常的链接。

下一节我们=进入标签管理。

自学git心得-4的更多相关文章

  1. 自学git心得-2

    趁着最近还没忙起来,抓紧更新一下学习心得. 现在的情景是,我们已经在本地创建了一个Git仓库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备 ...

  2. 自学git心得-1

    Github作为目前世界上最先进的分布式版本控制系统,是软工工作者管理工程代码的不二选择,笔者也是因时所需,自学了基本的git操作,在此回顾一下也作为分享. 推荐学习资源:https://www.li ...

  3. 自学git心得-5

    标签管理也是git里面比较重要的一部分内容,我们下载软件的时候经常看到诸如v2.0.v2.3.0这样的版本号,在git里也是一样,有时为了避免分支的名称五花八门而发生混淆的情况,我们常常会 给分支贴上 ...

  4. 自学git心得-3

    转眼到第三节了,我们进入分支管理. git领域里的分支可以理解为一个有安全保障的临时仓库,有时我们新修改了代码,突然发现有bug需要回到之前的版本,有时我们开发到一半,突然要出去一趟,如何安全保存当前 ...

  5. 第一次使用Git心得体会

    用书本上的概念讲,Git是一个分布式的版本控制工具,每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,能够不依赖于网络和中心服务器.也就是说Git能够不需要服务器而在 ...

  6. git心得

    使用Git得到了以下体会: github在新的目录下添加新的文件 git init //在相应的目录下添加 git add //添加目录 git commit -m "first commi ...

  7. git心得与总结

    任何文件在Git库中都有四种状态:未跟踪状态untracked.跟踪状态tracked(未修改状态unmodified.已修改状态modified.暂存状态staged),由于文件的上述四种状态,在使 ...

  8. java自学入门心得体会 0.1

    之前记录了java的简介和基本语法 这里记载下对象和类 不太懂的我理解java对象和类的概念很模糊,因为有了 Abstract修饰符 让对象与类更加的扑朔迷离 - - 所以,就像很开放的语言,创建对象 ...

  9. java自学入门心得体会 从环境配置开始

    java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...

随机推荐

  1. mono for android读书笔记之真机调试(转)

    调试环境: 1.软件:monodevelop v3.0.3.5 2.硬件:华为C8650s手机一部,数据线一根,thinkpad e420笔记本电脑一台 调试的应用程序有一个Activity,Acti ...

  2. service worker --- offline APP

    相关介绍: https://developer.mozilla.org/zh-CN/docs/Web/API/Service_Worker_API/Using_Service_Workers

  3. web前端优化之reflow(减少页面的回流)

    1.什么是reflow? reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程. 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手. 以 ...

  4. java多线程---------java.util.concurrent并发包----------等待多线程完成

    一.等待多线程完成的join的使用.CoundownLantch.CyclicBarrier .

  5. [心平气和读经典]The TCP/IP Guide(000)

    The TCP/IP Guide [Page 39] The TCP/IP Guide: Introduction and "Guide to The Guide" | 第1章 概 ...

  6. typeof, offsetof 和container_of

    要理解Linux中实现的双向循环链表("侵入式"链表),首先得弄明白宏container_of. 本文尝试从gcc的关键字typeof和宏offsetof入手,循序渐进地剖析宏co ...

  7. Golang build命令解析

    go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件. usage: go build [-o output] [-i] [build flags] [ ...

  8. 06-码蚁JavaWeb之Servlet生命周期与基本配置

    学习地址:[撩课-JavaWeb系列1之基础语法-前端基础][撩课-JavaWeb系列2之XML][撩课-JavaWeb系列3之MySQL][撩课-JavaWeb系列4之JDBC][撩课-JavaWe ...

  9. Jenkins2.138配置slave节点时,启动方法只有两个选项

    Jenkins2.138配置slave节点时,启动方法只有两个选项,并没有通过javaweb代理启动这个选项 解决办法 全局安全配置->代理->选择随机选取

  10. unity3d之游戏优化

    =============================================================================== 美术规格: 1.单个蒙皮网格渲染器2.一 ...