自学git心得-4
本节介绍分支的一些具体应用实例。
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.抓取分支
多人协作时,大家都会往远程的master和dev分支上推送各自的修改。我们可以用命令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的更多相关文章
- 自学git心得-2
趁着最近还没忙起来,抓紧更新一下学习心得. 现在的情景是,我们已经在本地创建了一个Git仓库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备 ...
- 自学git心得-1
Github作为目前世界上最先进的分布式版本控制系统,是软工工作者管理工程代码的不二选择,笔者也是因时所需,自学了基本的git操作,在此回顾一下也作为分享. 推荐学习资源:https://www.li ...
- 自学git心得-5
标签管理也是git里面比较重要的一部分内容,我们下载软件的时候经常看到诸如v2.0.v2.3.0这样的版本号,在git里也是一样,有时为了避免分支的名称五花八门而发生混淆的情况,我们常常会 给分支贴上 ...
- 自学git心得-3
转眼到第三节了,我们进入分支管理. git领域里的分支可以理解为一个有安全保障的临时仓库,有时我们新修改了代码,突然发现有bug需要回到之前的版本,有时我们开发到一半,突然要出去一趟,如何安全保存当前 ...
- 第一次使用Git心得体会
用书本上的概念讲,Git是一个分布式的版本控制工具,每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,能够不依赖于网络和中心服务器.也就是说Git能够不需要服务器而在 ...
- git心得
使用Git得到了以下体会: github在新的目录下添加新的文件 git init //在相应的目录下添加 git add //添加目录 git commit -m "first commi ...
- git心得与总结
任何文件在Git库中都有四种状态:未跟踪状态untracked.跟踪状态tracked(未修改状态unmodified.已修改状态modified.暂存状态staged),由于文件的上述四种状态,在使 ...
- java自学入门心得体会 0.1
之前记录了java的简介和基本语法 这里记载下对象和类 不太懂的我理解java对象和类的概念很模糊,因为有了 Abstract修饰符 让对象与类更加的扑朔迷离 - - 所以,就像很开放的语言,创建对象 ...
- java自学入门心得体会 从环境配置开始
java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...
随机推荐
- apache访问快捷方式
<VirtualHost *:80> DocumentRoot "XXX" ServerName XXX Alias /pdodata/ "XXX" ...
- JavaScript中的不可变性(Immutability)
什么是不可变性(Immutability)? 即某个变量在进行了某个操作之后,其本身没有发生变化,比如对于字符串而言,对字符串的任何操作都会改变字符串本身的值,而是在字符串的基础上复制出来一个然后再改 ...
- php工具箱使用
linux安装过程 1,去网盘下载(本人网盘也有,如果找不到,contact me)http://pan.baidu.com/s/1cxHQge 我解压以后放在/mnt/hgfs/root/phpto ...
- Js 中的false,零值,null,undefined和空字符串对象
转自 http://www.imkevinyang.com/2009/07/javascript-中的false零值nullundefined和空字符串对象.html 在Javascript中,我们 ...
- Nginx 反向代理(http转htpps,并支持80端口继续提交post请求)
项目是一个web server + 多个client的形式,client由用户安装在自己的电脑上 由http升级为https后,我们通过在Nginx做了80端口重定向443的配置,使用户通过访问htt ...
- IOS渐变图层CAGradientLayer
看支付宝蚂蚁积分,天气预报等好多APP都有圆形渐变效果,今天就试着玩了. 一.CAGradientLayer类中属性介绍 CAGradientLayer继承CALayer,主要有以下几个属性: 1.@ ...
- 十二:video 视频
属性名 类型 默认值 说明 src String 要播放视频的资源地址 controls Boolean true 是否显示默认播放控件(播放/暂停按钮.播放进度.时间) danmu-list O ...
- jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法
本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...
- zabbix使用(自定义监控、自动报警)
自定义监控(制作模板) zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU.内存.磁盘.网卡等常规监控,只要新加主机关联此模板,就 ...
- C# 视频转换类
using System.Web; using System.Configuration; namespace DotNet.Utilities { public class VideoConvert ...