之前只做过一个后台管理系统的项目,自己在本地独立完成,也不需要和他人合作;而现在正在做的一个青训营实践项目需要和他人分工合作完成项目,这时候需要用到git了,之前还没有接触过这部分内容,趁着这个机会我也学习了相关的内容。当面临一个新事物的时候,我们经常问的三个问题就是:“是什么”,“为什么”和“怎么做”,本文也将从这个角度展开。
Git:分布式的版本控制系统
要理解这句话就要理解两点:什么是“版本控制系统”以及“分布式”
-
版本控制系统:(Version Control System - VCS)
- 版本控制:在文件修改过程中记录修改历史。能够撤销操作,回滚到某个版本
- 主动提交:需要主动提交改动,并描述改动的信息,方便回退
- 中央仓库:解决多人合作的同步需求
-
分布式:除了中央仓库外,还有本地仓库
明白了git“是什么”,实际上也就理解了为什么需要git,这也是正式的生产环境所必需的。
我们的重点是,如何使用git,这里主要是一个快速的入门
将远程仓库取到本地
git clone <Github URL>
完成操作后即将项目拉取到本地,其中**.git目录即为本地仓库**,.git所在的目录为工作目录
提交代码至本地仓库
执行下面的命令,查看工作状态
git status // 查看工作目录当前状态
- 有文件处于 untracked ,则说明git仓库还没有记录跟踪该文件,需要进行如下操作,让git跟踪该文件
git add <file>
此时再执行 git status 命令,则该文件为 "Changes to be commited” ,等待提交,此时说明该新添加的文件变为了暂存状态 “staged”。
- 有文件处于 modified,说明该文件有改动,提交改动即可
git commit
当执行完该命令后,会进入一个页面,填写提交信息
git log
此时执行这一命令能够看到我们的提交历史信息,刚刚的提交已经赫然在列了
从本地仓库推送到中央仓库
执行 git status 命令时可以看到提示信息,我们目前的branch领先oriin/master(可以理解为中央仓库)几次commit,这时候执行这个命令把本地提交发布
git push
更新仓库
当你的合作者已经push了他对本地内容到了中央仓库,这时候如果我们也push则会失败,因为他人push了我们没有的commit到中央仓库,而我们的本地仓库并没有这些commit,中央仓库无法合并我们的本地仓库代码,因此我们需要获取这些commit并更新本地仓库呢,需要执行这个命令
git pull
它会将中央仓库具有而我们的本地仓库不具有的commit和我们要提交的commit合并,这时候再push就可以成功了
完成了上述步骤的操作,可以说我们就已经入门git,但是git作为版本控制系统并不仅仅这么简单,我们目前的操作还仅仅限于拉取与提交,能够应付基本的日常使用,但是其真正的精髓还是“版本控制”,这部分应该算是git的进阶内容了