GIT
git的介绍
很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。
Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?
事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。
不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。
安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。有人试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司怒了,要收回Linux社区的免费使用权。
Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
集中式和分布式
集中式
先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
缺点:
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。
分布式
那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
安装Git
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。
要使用Git,第一步当然是安装Git了。
msysgit是Windows版的Git,从https://git-for-windows.github.io下载(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
配置
安装完成后,还需要最后一步设置,在命令行输入:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
Git的基本使用
git的分区
Git 本地数据管理,大概可以分为三个区,工作区,暂存区和版本库。
- 工作区(Working Directory)
是直接编辑的地方,肉眼可见,直接操作。 - 暂存区(Stage 或 Index)
数据暂时存放的区域。 - 版本库(commit History)
存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程git仓库了。
使用
在使用的时候首先要初始化仓库
git init
然后通过git add . 讲内容放入到暂存区
git add .
通过 git commit -m '推送描述' 放入到版本库中
组长操作
创建项目
第一步
第二步
image.png
第三步
image.png
按照步骤上传项目 下面我来示范一下
首先在桌面上创建出来一个文件夹
image.png
讲做好的项目拷贝到这个目录中 进入到这个目录中
image.png
通过 touch .gitignore
image.png
下一步 git init 初始化
image.png
下一步 git add . 将文件放入暂存区
Git commit -m ‘描述’ 放入到本地库
image.png
关联远程仓库 git remote add orgin “远程仓库地址”
git remote add origin https://gitee.com/fanjialong/test001.git
推送到远程仓库
git push -u origin master
输入账号和密码 就是码云的账号和密码
image.png
观察远程仓库已经推送成功了
image.png
下一步添加组员
image.png image.png
输入组员的码云名字
image.png
组员操作
同样组员需要设置账号和密码
git config --global user.name "输入你的用户名"
git config --global user.email "输入你的邮箱"
image.png
组员将项目克隆到本地
image.png
image.png
image.png
组员克隆下载以后进入界面以后 首先创建出来一个分支 当然这也是大家都要去做的东西
每一个人在自己的分支上开发自己的功能,确保自己的功能没有问题了在合并到主分支
image.png
当创建完以后你会发现你已经在分支里面了 这个时候大家首先push一下在远程仓库中加上主分支
image.png选中项目右键里面有个git ->repository->push
image.png
这个时候看远程仓库中已经是有分支了
image.png那么接下来你就在你的分支去开发你的功能 如果你开发完了 比如你写了一个类为A
image.png那么接下来你需要 先add 在commit 这个也是在项目右键git ->add
image.png选择commit
image.png然后 push到你自己的分支
image.png这个时候其实远程仓库中你的分支中已经有这个A了
假设你要做的任务就是A,现在写完了 也确保功能没有问题了那么接下来就要把这个合并到主分支中因为主分支现在是没有A的
image.png那么如何的合并
首先切回到主分支
image.png然后让主分支合并你的分支
image.png这个时候已经看到主分支也有这个类了
image.png然后在推送主分支的时候一定要记得要首先pull ,然后在push 这个时候看到远程仓库库中就赢有A类了主分支.
image.png
网友评论