版本控制工具也叫CVS,经常使用版本工具从实现上来讲能够分为如下三类:本地版本控制系统、集中化版本控制系统、分布式版本控制系统,下面我来一一介绍一下这3种的区别。html
本地版本控制系统:最初的版本控制,只是在本地进行保存,每次有修改后就在本地保存一份新代码。它能够保存好本身的全部修改,一我的的项目用一用仍是没问题的,可是考虑到团队协做的时候不方便,因此已经被淘汰了。linux
集中化版本控制系统:新增了一个远程服务端,支持多电脑和服务端之间的沟通环节,这样大大方便了团队之间的合做。在电脑A上的提交能够上传到服务端上,而后电脑B上能够拉取刚刚的修改。这种也是目前主流的版本控制系统之一,好比SVN就是使用的集中化版本控制系统。可是一旦断网,就无法进行提交代码了。git
分布式版本控制系统:在集中化的基础上,又新增了一个本地的版本控制系统。相似于集中化和本地的结合体,能够下降服务端挂了的风险。增长了本地的版本控制之后,就算服务端出问题再也不接收代码,本地仍然能够正常工做。目前最流行的版本控制方式,好比git就是如此。
github
区别一 git是分布式,全部操做在本地执行,切断服务器不影响本地代码的保存浏览器
区别二 git是记录全部文件的快照,其余CVS是记录每次修改的增量
bash
其余CVS只是记录了每次的增量数据,因此每次提交的时候都须要去对比代码变化,得出一个增量变化,服务端将增量变化进行保存。因此其余CVS在切换分支的时候会比git慢不少,由于它们要根据增量去计算当前最新文件是什么样的。而git是记录全部的文件,每次有修改后就记录成新的文件,这也就是为何当不一样人在同一分支上提交时,就算没有冲突也须要git pull的缘由。由于后面的那次提交和前面的那次提交不同,系统不知道记录哪一个文件为最新文件。
服务器
图1.其余CVS的工做原理ssh
图2.git的工做原理分布式
首先下载git,而后双击安装,一路点肯定,使用默认配置便可。工具
随便进入一个目录,而后点击鼠标右键,若是有git bash选项,则说明安装成功。
每台电脑都须要配置一下当前机器的git信息,用来惟一标注该电脑。使用git config命令进行配置,能够选用global参数,表明该电脑上全部库都采用这个用户信息。
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
复制代码
git命令真的太多了,我这里只列举一些工做中最经常使用的命令吧,背太多那些基本用不到的命令也记不住。掌握了上图这些基本的没问题了,还有其余的命令能够碰到问题得时候再去查看。
建立一个名为XX的分支,建立的时候须要注意看一下本身是在本地库仍是远程库中。通常建议在本地库中建立,而后提交的时候再放到远程库中。
切换到名为XX的分支
合并XX分支上的内容到当前分支,合并之后若是有冲突,最好手动解决,不要用强制覆盖的方式,强制覆盖多了总会出问题的。
暂存当前分支上全部的修改到git缓冲区,暂存单个文件用git add 文件名
提交当前分支上的暂存数据到本地git库中,这个时候当前分支才算是真正更新成了最新代码。这里须要注意,只有提交了当前分支上的修改,才能够切换其余分支。
提交当前分支上的修改到远程库中,只有执行了push之后本身本地的代码才算是真正提交成功了。若此时推送失败,多是其余小伙伴也修改过这个分支。因此须要先git pull拉取一下远程最新的代码,若是其中有冲突,则须要解决完冲突之后再继续提交。
从绑定的远程库中拉取最新的代码到本地。若是多我的在同一分支上工做,则建议每次在开始工做时以及准备提交前先拉取一次,保证本地修改前的代码和远程一致。
git经常使用命令速查表:
下载sourceTree,而后点击安装,将会到达下面的界面,须要使用帐号才能继续安装。这个帐号可使用谷歌帐号,因此若是没有谷歌帐号的话须要去申请一个。
登陆以后,会让你设置github帐号信息,这里直接点跳过就好
接下来会让你设置ssh秘钥,这里能够设置,也能够点取消,后面再设置
接下来会弹出提示说没设置Mercurial,我也不知道这是什么东东,直接不使用就好
1.导入项目
导入项目有两种方式,能够从本地选择项目以及填写github地址的方式来导入项目。首先点击克隆/新建,而后输入github地址或者是选择本地的项目。
2.检出分支
点击操做->检出,选择检出新分支,而后选择远程的分支,输入检出后在本地的分支名,点击肯定便可。
3.切换分支
切换分支很是方便,双击souceTree左边面板上的分支名就能够了。若是当前分支有修改文件,则须要先将修改进行贮藏才能够切换哦。
4.拉取代码
点击上方操做栏上的拉取按钮,将会弹出分支选择框,选择好想要拉取的分支,点击肯定便可
5.暂存代码
选中工做副本,而后点击暂存全部便可暂存全部文件。也能够选择性地暂存某个文件,先选择好而后点暂存所选就能够了。
6.提交代码
在已有已暂存代码后,再如上图的3 4 5操做,首先输入好上传的文案,而后选中推送的复选框,最后点提交便可。须要注意的是,这里的提交其实至关因而commit+push,在提交到本地的同时,也会直接推送到远程服务器上。
7.贮藏代码
点击上面的贮藏按钮对当前分支上的已修改代码进行贮藏,贮藏时能够选择是否保留已暂存代码。贮藏后能够点击左下角的贮藏功能查看刚才的贮藏历史,而后点击应用贮藏便可将刚才的代码恢复到分支上。这个功能仍是很好用的,当目前分支上已有修改,而且当前并不想提交的时候,而又须要切换分支时,就能够对当前的已修改代码进行贮藏。
1.在github上新建仓库
2.拉取刚新建的空项目
在建立完项目后,就能够获取到项目的github地址,其实就是github在浏览器上的地址。获取到之后随便找个文件夹下,右键git bash,而后git clone 该项目,将该空项目拉取下来,拉取空项目的目的是拉取.git配置。
3.上传项目代码
将实际项目代码复制到前面clone的那个空文件夹下,最后依次执行git命令
git add .
git commit -m ""
git push
便可
4.上传readme图片
首先在github项目上新建一个文件夹,将图片放入其中,并push到服务端。而后再github上点击查看图片详情,复制图片在github上的url。接下来点击到readme中,使用如下规则添加刚刚提交的图片:
通常来讲若是你是项目的第一个开发人员的话,还要搭建一个功能相似于github的私有git服务器。有人会问为何不直接用github呢,缘由是github上代码若是不交钱是公开的,总没有人愿意把本身公司代码公开给别人随便看吧,更没人愿意为了避免须要交钱的东西去交钱吧。
搭建服务器?听起来很恐怖,但其实也是很是的简单,linux提供好了相应的命令,只须要按照命令一个一个往下执行就行了,我这里给出一个写得不错的教程吧,有须要的同窗能够拿去直接用。教程连接
大厂使用git的方式通常和github上的开源项目同样。首先git服务器确定是他们本身搭建的,项目成员经过fork源项目的方式创建本身的远程副本。每次工做时首先在本身本地拉取源项目的develop分支,而后修改代码后首先提交到本身的远程副本中,经过merge request的方式向源项目发起合并代码请求。在通过代码review之后,有些review较严格的团队会合到源项目的其余分支上,通过修改后最终提测的代码才会合到develop上,也有些团队直接合到develop上进行提测,提测通常是将git项目绑定好jenkins,而后在jenkins上选择好分支点击便可。在提测结束之后百分百稳定的代码才会合到master上面,确保master的代码基本稳定。这个时候就新建bugfix分支用来发小版本解决上个版本的bug以及新增一些小需求,在bugfix提交完成后最终合并到develop以及master上面,修改版本号进行下一个版本的开发。
版本控制工具大大地提高了团队开发的效率,而git又是CVS中目前最主流的工具。本文介绍了git和其余CVS的对比,列出了我以为工做中最经常使用的命令。而后推荐了我本身也在用的sourceTree工具,没用过的小伙伴相信我,用过了确定会相见恨晚的。最后分享了一下如何上传本身的代码到github中,以及大厂是怎么使用git的,但愿能对你们有所帮助!