这篇文章,我们来讲述一下更高层次的git的应用
目录
1.分支管理
1.1分支概述
分支管理是项目联合开发的一个重要组成部分。可以想象如下场景:
现在我们有一个项目,然后将此项目分成ABC三等份,分别交给甲乙丙三个人去完成,三个人分别完成各自的任务后,将其提交到远程仓库,然后再合并,就是一个完整的项目。但是我们的远程仓库有这样的一个功能:它可以有子仓库。那么我们是不是可以这样做:我们可以给ABC三部分分别创建三个子仓库(当然也可以根据甲乙丙三个人来创建是三个子仓库),然后每个人完成每个人所要完成的部分后将其提交到自己所属的子仓库中,等最后三个人都完成了,再完成最后的合并。其中,这里所说的子仓库就是我们所说的分支!
1.2 创建子分支
下面,让我们跟着步骤来创建子分支。
第一步:
打开我们Gitee上的仓库,如下图所示:
第二步:
将远程仓库克隆到我们的本地:
第三步:
创建子分支,命令:git checkout -b 名称,如下图所示:
如此,我们便创建好了一个子分支,并且,我们已经由master分支切换到wxy子分支上了
第四步:
往子分支中提交文件,注意git push命令出现区别,如下图所示:
第五步:
在Gitee上看下结果:
这个是之前在master分支上提交的,我们可以看到,这里面没有刚才提交的aaa.txt
这个是wxy分支,我们可以看到这个里面是有之前提交到master分支上的Hello.java和刚才提交的aaa.txt文件的
第六步:小结
master分支上有的文件,其余子分支上都会有,其余子分支上只会有提交到该分支的文件和master上的文件。就相当于大家共用的文件提交到master上,自己独用的文件提交到子分支上。
1.3 分支合并
这里说的分支合并并不是将分支进行合并,而是将分支里面的文件合并到主分支即master分支上。下面,我们来看具体操作:
第一步:
我们先来切换一下分支,从子分支切换到主分支上去,如下图所示:
第二步:
将子分支上的文件拉取到主分支上,命令git merge 子分支名,如下图所示:
第三步:
git pull一下,即最新化一下分支内容:
第四步:
提交,如下图所示:
第五步:
看下结果,aaa.txt提交到了master分支里面了,即完成了分支合并:
注意:
假设一个组织里面有甲乙丙是三个人,并且这三个人合作完成一个项目,甲创建分支A,乙创建分支B,丙创建分支C,那么甲就只能操作分支A和master分支,或者说只能切换到A和master分支,不能切换到B和C分支,更不能在B和C分支上进行相关操作了
2.版本回退
2.1 情景描述
我们知道git是版本管理工具,既然是版本管理工具,那么就可以控制一个项目的各种版本,也就意味着git可以进行版本回退。具体怎么操作呢?我们来看下面的例子
2.1 具体操作
第一步:
首先,我们看仓库中的文件aaa.txt中的内容,如下图所示:
第二步:
进行修改:
第三步:
提交到缓存区:
第四步:
再修改:
第五步:
再提交到缓存区:
第六步:
将其提交到远程仓库:
第七步:
看下结果:
第八步:
继续修改:
第九步:
提交到缓存区:
第十步:
再修改:
第十一步:
再提交到缓存区:
第十二步:
进行版本回退,git reset HEAD^ aaa.txt:
第十三步:
看下结果:
回退到了上一个版本,这就是版本回退!
2.3 步骤讲述
下面进行语言讲述一下:
首先,你本地有一个文件(版本1),然后你将其提交到远程仓库。然后你进行修改,得到版本2,于是你git add,git commit -m,git push再将其提交到远程仓库。然后你再修改,得到版本3,再将其提交到远程仓库。但是此时你发现版本1更好用,于是你git reset HEAD^^ xxx,git commit -m,git push 就得到了最初的版本1啦。
注意:
- git reset HEAD^^ xxx命令中,一个^代表往前回退1个版本,2个^就代表往前回退2个版本。
- 你修改,提交到本地仓库,再修改,再提交到本地仓库,再修改,再提交;此时你再往远程仓库提交,那么就是提交你最后修改后的那个版本的内容
3.小结
这篇文章,我们主要讲了下git对分支的管理和版本回退的操作,具体涉及到以下的命令:
- git branch 分支名
- git checkout 分支名
- git checkout -b 分支名
- git merge 分支名(将子分支的数据合并到主分支上)
- git status
- git reset HEAD^^^ hhh.txt
这些都是要掌握的