Git属于分散性版本管理系统,是为版本管理而设计的软件。Linux的创始人Linux Torvalds在2005年的时候开发了Git的原型程序,由于在Linux内核的开发中使用的既有的版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds开发了Git。
什么是版本管理
版本管理就是管理更新的历史纪录。它为我们提供了一些在软件开发过程中必不可少的功能,例如记录一款软件添加或者变更源代码的过程,回滚到特定的阶段,恢复一些误删除的文件之类。在Git之前,人们普遍采用一些集中式的版本管理系统,而这两者的区别主要在于,集中型以Subversion为代表,只存在一个仓库统一存放在服务器中,数据集中在一个仓库中,就意味着管理上很方便,但是风险是一旦当机,整个数据的毁灭性是巨大的。分散型意味着有很多的仓库,管理上就复杂了,但是开发者就不需要一定要像集中型一样去连上远程唯一的仓库才能进行开发。
git的基本操作
初始化仓库- git init
在初始化成功之后,就会生成.git目录,这个.git目录里面存储着管理当前目录内容所需要的仓库数据。这个目录被称为“附属于该仓库的工作树”。文件的编辑等操作在工作树中进行,然后记录到仓库中,用来管理文件快照。
查看仓库状态- git status
可以看到下图的结果显示我们当前brand(分支)是master,接着显示commit(提交)没有可提交的内容。
添加需要管理的文件-git add
如果我们只是简单的在gitTest文件夹中添加一个比如说README.md文件 ,会提示说这个文件没有被追踪或者被标记在仓库的版本管理对象以内(及我的gitTest文件夹内)。即需要提交的内容还是空。
提交仓库中变化的内容-git commit
如图所示通过git status查看可以看到我修改了README.md 文件,那么,我就可以将我的修改通过git commit文件进行提交,从而将当前变化的操作记录下来。 '-m'后面跟的字符串就是对你本次提交的一个说明,比如说 -m '修改了一个变量' 之类的。
查看提交日志-git log
那么,当我执行提交命令之后,我怎么查看我有没有提交,或者说怎么查看到我提交的历史记录呢?使用git log 我们可以看看刚刚modified的操作记录以及描述。
git的分支操作
我们原先的基本操作都是在一个主分支即master上完成的,但是,在实际的开发过程中,每个人根据自己项目任务的不同,都会从master上创建出一条自己的项目的开发分支,然后在上面开发,等项目开发完成了,再把自己的开发内容合并到主(master)分支上面。从而保证master分支的稳定性。
查看分支 - git branch
创建分支 - git checkout -b yourBrandName
注意看,使用这个命令之后,我们成功的创建了一个xiheBrand的分支,同时,我们的开发也自动切换到了这个分支上面。说明,checkout的xxx分支的操作,是在切换分支的过程中自动创建了分支。
创建分支 - git brand yourBrandName
相对于上述的操作方法,这个命令就是单纯的创建分支啦。可以看到我们虽然创建了另一个xiheNoSwitchBrand但是我们的开发分支没有切换。还是在xiheBrand上。
此外在git的使用中我们还需要学会:
git merge XXbrand 就是将某个分支上的内容合并过来。 git reset 版本回退之类的。
其中,git 有一个很好玩的命令 git log --graph