最近圈子里的大佬不只是约好是还是怎么滴,大伙都谈起了Git这个东西。而自己对Git这个东西还只是一知半解,简单知道这是一个代码托管之类的版本控制工具,其他却一无所知。说来也巧,一期项目刚好交给老大验收,当然是稳过的啦。现在的时间就剩下自己安排了,想了想自己还是有很多事情还没干。But,多大的事情在我这颗爱装13的心的跳动下,还是默默下载了Git,撸了半天后还是决定写下此文。
俗话说,学习要一定要有扎实的基础。那么我们就先看看Git到底是个啥玩意。
git其实是Linux创始人Linus为了管理全世界热心志愿者为Linux编写的代码而开发的一个版本控制系统。在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!后面Linus因为BitMover公司威胁Linux社区,一怒之下,花费两周时间用C编写了一个分布式版本控制系统-----没错就是Git。自2008年 Github 上线后,git为其开源项目提供免费储存,无数开源项目开始迁移至 GitHub,包括jQuery,PHP,Ruby等等。
简而言之,Git就是一个分布式版本控制系统。相对于CVS 和 SVN等这些集中式版本控制系统,Git的分布式版本控制,无疑是最吸睛的。
可能你也不知道什么是集中式和分布式,顺道解析下吧。
先说集中式版本控制系统。集中式版本控制的版本库必须放在中央服务器,干活的时候先要从中央服务器获取最新的版本,干完活后把代码推送到中央服务器。就好比,老师让你帮忙修改作业,要先把作业本拿回家,改完了,再给回老师(原理图如下)。
集中式版本控制系统集中式版本控制系统最大的毛病是需要联网才能工作,而且对网络的要求较高。分布式版本控制系统就完美解决了这一点。
因为分布式版本控制系统根本就没有“中央服务器”,每台工作的电脑都是一个完整的版本库。如此一来,你工作的时候就不用联网了。假若你的电脑上改了代码片段A,小明电脑也改了片段A,我两只需要把各自修改的推送给对方,对方都可以看到对方的修改了,一次达到多方合作的目的。在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天小明病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已(如下图)。
分布式版本控制系统而且分布式版本控制系统远比集中式的安全性能要高很多,因为分布式每个人的电脑都有完整的版本库,某台电脑垮掉了,就去别的电脑拷贝一份就行。集中式的若是中央服务器出现问题,其他人就没法干活了。而且Git还有更强大的分支管理,这个用到再说。
在Windows安装Git
在官网上下载Git,一路狂点安装完毕。在开始菜单找到Git --> Git Bash (如图)
Git Bash配置创建Git仓库
现在还需要配置git,命令行输入:
git config --global user.name "your git name"
git config --global user.mail "email@example.com"
什么是版本库呢?版本库就是仓库,英文名:respository,你可以简单理解为一个文件夹,里面存放的都是归Git管理的文件。而且里面的每个文件的增删查改都是能跟踪的。方便用户进行对该文件的某个时间节点的版本进行跟踪以及还原。
如何去创建一个版本库?很简单,在自己系统找个合适的地方(路径最好不要包含中文,不然结果会让你很震惊),本文在 "D:/Git/" 使用命令行创建learngit文件夹,然后打开 learngit 文件夹,使用 pwd 命令
$ mkdir learngit
$ cd learngit
$ pwd
其次,再通过 git init 命令把这个目录 变成 git 可以管理的仓库:
$ git init
Initialized empty Git repository in D:/Git/learngit/.git/
这时候在目录下会多一个 .git 的目录(如果没看到,应该是该目录被隐藏了,可以使用命令行 " ls -ah "查看),这个是用来跟踪管理版本库的,小白千万别碰目录里面的文件。不然该乱了,就把这个仓库破坏了。
把文件添加到版本库中
默认的编码格式一定是 UTF-8 无BOM编码。这里重要的事情说三遍!!!
默认的编码格式一定是 UTF-8 无BOM编码。这里重要的事情说三遍!!!
默认的编码格式一定是 UTF-8 无BOM编码。这里重要的事情说三遍!!!
文本编辑器建议使用notepad++,推荐理由:因为我也在用。
sept 1:使用命令git add 添加文件到仓库
$ git add test.txt
执行后没有任何显示那就说明成功了,牢记:Unix的哲学是“没有消息就是好消息”。
sept 2: 使用命令git commit 提交文件
$ git commit -m "这里提交了test.txt文件!"
出现以下提示,表示提交成功:
简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的test.txt文件);2 insertions:插入了两行内容(test.txt有两行内容)。
多说两句
初始化仓库使用 git init命令
$ git init
Initialized empty Git repository in D:/Git/learngit/.git/
使用 git add 可以后接多个文件名,因为 git commit 可以一次性提交多个文件
$ git add file1.txt file2.txt
$ git add file3.txt
$ git commit -m "提交了三个文件"
网友评论