开源软件分布式版本控制器 GIT Linus的第二个伟大作品 演讲者:喻鹏.

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
版本控制的史前时代 用存储介质拷贝代码 代码相互覆盖,不知道哪个版本是正确的 搞错了无法恢复,需要定期手工备份
历史人物的研究 ----曾国藩 组员: 乔立蓉 杜曜芳 杨慧 组长:马学思 杜志丹 史敦慧 王晶.
教育部高职高专英语类专业教学指导委员会 刘黛琳 山东 • 二○一一年八月
淡雅诗韵 七(12)班 第二组 蔡聿桐.
第七届全国英语专业院长/系主任高级论坛 汇报材料
小數怕長計, 高糖飲品要節制 瑪麗醫院營養師 張桂嫦.
制冷和空调设备运用与维修专业 全日制2+1中等职业技术专业.
会计信息分析与运用 —浙江古越龙山酒股份有限公司财务分析 组员:2006级工商企业管理专业 金国芳 叶乐慧 魏观红 徐挺挺 虞琴琴.
第六章 人体生命活动的调节 人体对外界环境的感知.
芹菜 英语051班 9号 黄秋迎 概论:芹菜是常用蔬菜之一,既可热炒,又能凉拌,深受人们喜爱。近年来诸多研究表明,这是一种具有很好药用价值的植物。 别名:旱芹、样芹菜、药芹、香芹、蒲芹 。 芹菜属于花,芽及茎类。
2012年 学生党支部书记工作交流 大连理工大学 建工学部 孟秀英
北京市职业技能鉴定管理中心试题管理科.
2014吉林市卫生局事业单位招聘153名工作人员公告解读
各類所得扣繳法令 與申報實務 財政部北區國稅局桃園分局 103年9月25日
初級游泳教學.
爱国卫生工作的持续发展 区爱卫办 俞贞龙.
第八章 数学活动 方程组图象解法和实际应用
本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响. 本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响.
散文鉴赏方法谈.
比亚迪集成创新模式探究 深圳大学2010届本科毕业论文答辩 姓名:卓华毅 专业:工商管理 学号: 指导老师:刘莉
如何撰写青年基金申请书 报 告 人: 吴 金 随.
点击输 入标题 点击输入说明性文字.
國際志工海外僑校服務 越南 國立臺中教育大學 2010年國際志工團隊.
痰 饮.
學分抵免原則及 學分抵免線上操作說明會.
教 学 查 房 黄宗海 南方医科大学第二临床医学院 外科学教研室.
评 建 工 作 安 排.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
首都体育学院 武术与表演学院 张长念 太极拳技击运用之擒拿 首都体育学院 武术与表演学院 张长念
现行英语中考考试内容与形式的利与弊 黑龙江省教育学院 于 钢 2016, 07,黄山.
第5讲:比较安全学的创建 吴 超 教授 (O)
彰化縣西勢國小備課工作坊 新生入學的班級經營 主講:黃盈禎
重庆市西永组团K标准分区基本情况介绍.
西貢區歷史文化 清水灣 鍾礎營,楊柳鈞,林顥霖, 譚咏欣,陳昭龍.
所得稅扣繳法令與實務 財政部北區國稅局桃園分局 102年12月19日 1 1.
角 色 造 型 第四章 欧式卡通造型 主讲:李娜.
走进校园流行 高二15班政治组 指导老师:曾森治老师.
医院文化建设 广东省中医院 2011年3月26日.番禺.
POP字体设计 陈志鹏 广告1231.
不動產市場 分析與預測 第四章 不動產市場分析與研究.
Subversion (SVN) Presented by 李明璋 R /2/21
GitHub 2015/10/28 鄭雅馨.
GERRIT使用说明 配置管理-高峰
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
Introduction to Git Lu Li
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
欢乐玩转GIT 讲师:FREE QQ:
日构建
Git & github By 宋正倫 (修訂by jmchen).
Feature and function introduction to GIT & Linux June 22, 2013
环境配置及使用.
Git使用入门 —johnson.
那些國修老師教我的事 黃毓棠.
Git 新一代版本控制系统 superwen.
Git使用简介 rainzha
Presentation transcript:

开源软件分布式版本控制器 GIT Linus的第二个伟大作品 演讲者:喻鹏

大纲 SVN之痛 1 GIT命令图解 2 命令&场景&实战 3 4 GIT分支管理策略

SVN之痛 对网络依赖极强,离开网络没法工作 提交只有一次机会,想后悔没门儿 创建分支、合并分支操作繁琐 网络太差,提交、更新和查看日志很费劲 强迫使用者及时处理冲突,然后才能提交 文件目录不能随意移动和修改 git与svn的五个区别 1、git是分布式,svn是集中式 2、GIT把内容按元数据方式存储,而SVN是按文件 3、GIT分支和SVN的分支不同 4、GIT没有一个全局的版本号,而SVN有 5、GIT的内容完整性要优于SVN git优势 ====== 由于是分布式,所有本地库包含了远程库的所有内容。 优秀的分支模型,打分支以及合并分支,机器方便。 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机器快速,使用个SVN的能深刻体会到这种优势。

GIT命令图解

命令&场景&实战 场景一:第一次使用GIT 场景二:如何实现多人协同开发-解决冲突 场景三:开发到一半需要临时处理紧急任务 场景四:从历史某个版本开一个分支继续开发 场景五:将分支合并回主干(master) 场景六:编码推倒重新开发 场景七:创建一个里程碑v1.0 拓展:如何避免引入辅助目录 拓展:如何用GIT代理SVN实现移动办公

命令&场景&实战 场景一:第一次使用GIT 在当前目录新建一个GIT代码库 新建一个目录,将其初始化为代码库 下载一个目录和它整个代码历史 git init 新建一个目录,将其初始化为代码库 git init [项目名称] 下载一个目录和它整个代码历史 git clone [url]

命令&场景&实战 场景一:第一次使用GIT 基本语法:git config [选项] [--global|--system|--local] 指定配置文件位置 查看配置文件内容 git config [--global] --list 命令行设置提交日志里我的姓名和邮箱 git config [--global] user.name “peng.yu” git config [--global] user.email “peng.yu@beebank.com” 在配置文件里直接修改:git config -e [--global]

命令&场景&实战 场景一:第一次使用GIT 克隆生成裸版本库 创建生成裸版本库 克隆版本库 拉取版本库最新代码 提交代码到远程版本库 git clone --bare /path/demo /repos/demo.git 创建生成裸版本库 git init --bare [项目名称].git 克隆版本库 git clone [username@ip:]/repost/demo.git [项目名称] 拉取版本库最新代码 git pull 提交代码到远程版本库 git add -A git commit -m ‘第一次提交’

命令&场景&实战 场景二:如何多人协同开发-解决冲突 用户A对a.list文件第一行代码进行修改并提交 git add a.list git commit -m ‘第一次提交’ git push 用户B对a.list文件第一行进行修改并提交 git commit -m ‘第二次提交’ git pull 与冲突提交者一起确定要谁的代码,删除冲突标识 git add -u

命令&场景&实战 场景三:开发到一半突然需要处理紧急任务 保存当前工作进度 恢复工作进度 git stash git stash list #查看所有保存进度 恢复工作进度 git stash pop #恢复上一次保存的工作进度 git stash apply stash@{0} #恢复某一次进度 git clear #删除所有进度

命令&场景&实战 场景四:从历史某个版本开一个分支并协同开发 查找所有历史,取某一版本创建分支并切换该分支 git log --pretty=oneline git checkout <commit-id> -b newbranch git push origin newbranch #将分支推送到远程版本库 拉取新的分支并切换该分支 git pull git branch -r #列出所有远程分支 git checkout origin/newbranch -b newbranch 不切换当前分支,创建新的分支(拓展) git branch --track newbranch origin/newbranch git branch newbranch <commit-id>

命令&场景&实战 场景五:将分支合并回主干(master) 将newbranch代码合并回主干 git checkout master git merge newbranch 将master代码合并回分支newbranch git checkout newbranch

命令&场景&实战 场景六:编码推倒重新开始 检出 重置 还原 git checkout -- file #恢复暂存区指定文件到工作区 git checkout <commit-id> file #恢复某个commit的指定文件到暂存区和工作区 git checkout . #恢复暂存区的所有文件到工作区 重置 git reset [file] #重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 git reset HEAD^ #重置到某一个版本,而不覆盖工作区 还原 git revert <commit-id> #不影响历史提交,代码恢复到指定版本

命令&场景&实战 场景七:创建一个里程碑v1.0 git tag v1.0 #创建里程碑v1.0 git tag #查看所有里程碑 git show v1.0 #查看某个里程碑所对应的提交 git push origin v1.0 #将里程碑提交到远程版本库 git tag push origin --tags #提交所有版本库 git tag -d v1.0 #删除里程碑 git push origin :refs/tags/v1.0 #删除远程版本库v1.0 git checkout -b debugv1.0 v1.0 #以v1.0创建分支

命令&场景&实战 拓展:如何避免引入辅助目录 在项目根目录创建.gitignore,配置语法: 以斜杠“/”开头表示目录 以星号“*”通配多个字符 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录 例子: .gitignore 忽略git忽略文件 test/ 忽略目录及目录下的文件 /test/ 忽略根目录下test/及所有子目录、文件 !/test 始终不忽略,test目录 *.swp 忽略后缀.swp结尾的文件

命令&场景&实战 拓展:如何用GIT代理SVN实现移动办公 在添加svn的库 克隆svn版本库地址 命令操作 git config --add svn-remote.jhx.v1.0.url <url> git config --add svn-remote.jhx.v1.0.fetch :refs/remotes/jhx.v1.0 git svn fetch 2.2.x git checkout -b local-2.2.x -t 2.2.x git branch -r 克隆svn版本库地址 git svn clone <url> 命令操作 git svn fetch | git svn rebase | git svn dcommit

GIT分支管理策略 常设分支 临时性分支 操作流程 主分支master 开发分支develop 功能(feature)分支 预发布(release)分支 修补bug(fixbug)分支 操作流程 git checkout -b feature-1.0 master git checkout master git merge --no-ff feature-1.0 1、代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。 2、主分支只用来分布重大版本,日常开发应该在另一条分支上完成。 3、功能分支它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。 4、预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。 5、修补bug分支。软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。

GIT分支管理策略 操作流程 git tag -a v1.0 git checkout develop git merge --no-ff feature-1.0 git branch -d feature-1.0 git tag

附录 常用GIT命令清单:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

Thank You ! 喻鹏