Git之版本控制工具的高级用法
来源:互联网 发布:c语言rinv 编辑:程序博客网 时间:2024/06/08 11:44
通过前面两篇文章的介绍,现在对Git已经不陌生了,通过前两篇文章的学习,已经学习掌握了Git中很多的常用命令。现在打开Git Bash,并进入到项目BaiduMapTest这个项目的根目录,然后执行提交操作:
git init
git add .
git commit -m "First Commit,"
这样的话继续该文的编写准备工作就完成了,下面了解下关于Git的高级用法:
1.分支的概述
分支是版本控制工具中比较高级且比较重要的一个概念,它主要的作用就是在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不会影响。分支的工作原理示意图:
2.分支的重要性
通常情况下,只在主干线上进行开发是完全没有问题,不过一旦涉及到出版本的情况,如果不建立分支的话,你就会非常头疼,举例如下:
你们公司研发了一款不错的软件,最近刚刚完成,并推出了1.0版本,但是领导不会让你们闲着的,马上提出了新的需求,让你们投入到1.1版本的开发工作中。过了几个星期,1.1版本的功能已经完成了一半,但是这个时候有用户反馈,之前上线的1.0版本有几个严重的bug,领导相当重视这个问题,要求你们立刻修复这些bug,并重新发布1.0版本,但是这个时候就非常为难了,你会发现根本没法去修复这些bug,以内现在1.1版本已经开发一半,如果在现有代码的基础上修复这些bug,那么更新的1.0版本将会带有一半1.1版本的功能。
此时你进退两难是不是?如果你使用了分支的话,就完全不会存在这个让人头疼的问题,你只需要在发布1.0版本的时候建立一个分支,然后在主干线上继续开发1.1版本的功能,当1.0版本上发现任何的bug时,就在分之上进行修改,然后发布新的1.0版本,并记得将修改后的代码合并到主干线上。这样的话,不仅可以轻松解决掉1.0版本存在的bug,而且也保证了主干线上的代码也修复了这些bug,当1.1版本发布时就不会有同样的bug存在了。
3.Git中操作分支
a.创建分支 git branch version1.0
b.查看当前的版本库中有哪些分支 git branch -a
c.由master分支切换到version1.0分支 git checkout version1.0
需要注意的是,在version1.0分支上修改并提交的代码将不会影响到master分支。同样的道理,在master分支上修改并提交的代码也不会影响到version1.0分支。因此,如果我们在version1.0分支上修复了一个bug,在master分支上这个bug仍然是存在的。这时将使用merge命令来完成合并操作:
git checkout master
git merge version1.0
以上两行命令就可以把在version1.0分支上修复并提交的内容合并到master分支上,当然,在合并分支的时候如果出现了代码冲突的情况,这个时候你就需要静下心来慢慢找出并解决这些冲突,GIt在这里无法帮助你了。
d.删除分支 git branch -D version1.0
4.与远程版本库协作
现有一个远程版本库的Git地址是https://github.com/example/test.git,用如下命令将代码下载到本地
git clone https://github.com/example/test.git
之后你在这份代码的基础上进行了一些修改和提交,接着发布到远程版本库,借助push命令:
git push origin master
其中origin部分指定的是远程版本库的Git地址,master部分指定的是同步到哪一个分支,上述命令就完成了将本地代码同步到https://github.com/example/test.git这个版本库的master分支上的功能。
如何将远程版本库某一分支上的修改同步到本地?Git提供两种命令完成此功能,分别是fetch和pull,fetch的语法规则和pull是差不多的,
git fetch origin master
执行完这个命令后,就会将远程版本库中的代码同步到本地,不过同步下来的代码并不会合并到任何分支上去,而是会存放在origin/master分支上,这是通过diff命令可查看修改的内容
git diff origin/master
之后调用merge命令将origin/master分支上的修改合并到主分支上即可
git merge origin/master
而pull命令等同于将fetch和merge这两个命令放在一起执行,它可以从远程代码库上获取最新的代码并且合并到本地
git pull origin master
以上内容略抽象,应该通过具体项目以测试之。
另外,收藏比较好的git教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137628548491051ccfaef0ccb470894c858999603fedf000
- Git之版本控制工具的高级用法
- git内容整理--版本控制工具的高级用法
- Git 时间,版本控制工具的高级用法
- Git 时间,版本控制工具的高级用法
- 3.Git(版本控制的高级用法)
- Git之初识版本控制工具
- Git之版本控制工具进阶
- (1)版本控制工具之Git
- 软件工程之版本控制工具Git,SVN
- 版本控制工具git
- git版本控制工具
- GIT - 版本控制工具
- Git 版本控制工具
- 版本控制工具--Git
- Git-版本控制工具
- Git,版本控制工具
- 版本控制工具git
- 版本控制工具GIT
- 7年来第1次,发现的sql绕过登录的问题
- 我自己的学习领悟——二
- 2015 ACM/ICPC Asia Regional Shenyang Online 1007 hdu 5456 Matches Puzzle Game
- C++函数参数读取顺序
- hdu 5078 Osu!
- Git之版本控制工具的高级用法
- MSSQL执行分页查询
- 【计蒜客系列】挑战难题115:单独的数字(二)
- Web系统大规模并发:电商秒杀与抢购
- 利用pictureBox制作星级评价
- [是用数据结构]UVa1471 - Defense Lines
- hdu 4788 Hard Disk Drive
- 解决Xcode7真机调试 Could not launch "My App" process launch failed: Security
- 我与监控宝之间的点点滴滴