共图社scott 大白共图社
开发一个完整的商城系统,必然需要提升工作效率的工具,该篇文章介绍代码管理的工具git。
对于刚接触git的人,git会有点陌生。git是个版本控制软件。何为版本控制?在我们开发过程中,面对需求的变更以及功能的优化,直接牵扯到的便是代码的变动,每一次变动后的代码相对之前都是一个新的版本,每个版本会记录代码变动相关的信息,方便日后的维护与管理,在每个版本的记录信息中可以很方便的看到哪些功能在哪个版本中添加,哪些bug是在哪个版本中出现,能很大程度提高我们管理代码的效率。版本控制的软件很多,git只是其中之一,但是git是普遍使用的,故而商城系统选择git管理。
接下来通过介绍git在我们的商城系统中的使用,来介绍git整个的使用流程。由于学习git最好是在命令行模式下,故该篇文章基于centos系统展开。
安装git软件
yum install git
git思想和工作原理
到这里有必要了解一下git的工作原理,我们使用git实际上使用的是基于git工作原理上的规则,就像学习一门外语,只有了解外语背后的文化后才能对语言的使用达到信手拈来的地步,我们要了解git基本的运行规则,这才是使用git的第一步。
git思想:每个版本只记录当前版本修改过的文件,其他没有修改的文件,不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
Version对应版本,File对应文件,虚线代表保存索引,实线代表保存文件。
第一个版本Version 1,新创建3个文件File A B C,因此全部按文件保存;第二个版本Version 2,File B没有修改,因此只保存一个链接,这个链接指向上个版本保存的File B,而File A 和C都有改动,因此都保存文件,之后的版本依次类推。
git工作原理:我们通过编辑器修改文件内容或者新建文件之后,最终通过git,会把这个改动按上面所说的思想,存到git仓库。这中间的详细过程如下:
在Working Directory修改文件,通过Stage Fixes过程把改动暂存到Staging Area,然后通过Commit过程变回把改动放到git仓库.git directory。如果想在git仓库里撤销这次的改动,则通过Checkout the project过程。
这里的Working Directory是对项目的某个版本提取出来的内容。按Version 1来看的话 就是File A B C,而按Version 2来看的话就是File A1 C1以及通过链找到的File B。因为Version 2中A1和C1都有改动。Staging Area是个暂存区。
提交操作
首先,针对商城系统,我们进行了第一次开发,接下来,我们要把这不过分开发放到git仓库里。这个时候由于还没有git仓库,自然先要在商城项目的根目录下创建仓库。
git init
该命令将会创建一个名为.git的子目录,这个目录包含git仓库的所有文件,我们之前说的每个版本保存的文件和索引也是存在这个目录下.同时暂存区Staging Area内容存放在.git/index文件中。有了git仓库,有了暂存区,接下来我们便开始把第一次开发提交到git仓库:
-
git add
文件名 把文件放到暂存区
-
git commit -m "提交信息"
这一步是真正的提交,会把暂存区的改动放到git仓库里 提交信息是自定义的,可以是“第一次提交”,这个看个人的想法,主要目的是方便日后查看这次提交。至此,第一次开发,便作为第一个版本,存在了git仓库中。这个时候我们便可以看看git仓库的提交历史
-
git log
在这里人为区分每次提交 就看我们之前提交的 “提交信息”
当然,偶尔也会有这种情况,我们执行完 git add命令之后,忘记有没有执 git commit了,这个时候,变可
以通过下面的命令查看到哪一步了。
-
git status
用于查看文件处于什么状态
撤销操作
上面只介绍了一次完整的提交流程,但是每次操作git命令之后,总有那么几次,发现我们提交的改动不对,这就需要撤销之类的操作:
-
git checkout --文件名
-
git add之后,修改进入到暂存区,如果想逆转这个操作,便可以用这个命令
-
git reset HEAD 文件名
-
对于git add 之后但还没git commit的文件,如果要撤销修改变可以用这个命令,逆转git commit
talk is cheap ,show you the code and the doc,更多的分享内容请关注我的工作号:大白共图社。公众号会有很多的github开源社区拿来即用项目源码以及相关的文章。欢迎关注。