git是分布式版本管理工具,一台电脑既能够是客户端,也能够是服务端。工做过程当中能够断开网络。svn是集中式版本管理工具,一台服务器控制不少客户端,使用过程不能断网。git
git的优势有:适合分布式开发,强调个体,公共服务器压力和数据量都不会太大,速度快,灵活,能够离线工做。github
svn的优势有:管理方便,逻辑明确,集中式管理更能保证安全性,适合人数很少的项目开发。安全
git中的三个概念:bash
一、版本库:在初始化git版本库以后会生成一个隐藏的文件, .git能够将该文件理解为git的版本库repository;服务器
二、工做区:项目目录;网络
三、暂存区:.git目录中的index文件就是暂存区,同时,git还为咱们自动生成一个master分支以及指向该分支的指针head在.git文件夹中。分布式
三者关系能够理解为咱们打开开发环境如Hbuilder,里面的内容即工做区的内容,在工做区里面有的代码以及配置文件等咱们须要提交到版本库里面,最终是到了分支master的上面,暂存区只是一个临时保存修改文件的地方。svn
注意git须要先安装服务端,再安装客户端。工具
git经常使用的操做命令:fetch
一、检出git的项目仓库:项目目录下右键单击git bash;
本地建立仓库:git init ;git status可查看当前被git管理的文件,空文件夹git无论理。
二、本地项目文件夹修改或新增的文件要先添加到本地的项目仓库下:git add 文件全称(包括扩展名) ;
仅将修改文件添加到暂存区:git add -u ;
添加当前目录的全部 文件到暂存区:git add . 或 git add --all 或 git add * 或git add -A; 工做中推荐用git add . 方便快捷不出错。
三、添加好文件后要把暂存区的文件提交到当前分支上:git commit -m "提交日志" (此处必定要写);
查看当前分支的版本历史(查看日志信息):git log;window系统下会自动退出,一些其余系统须要手动使用英文q退出。
四、回退到某个版本上:a: git reset --hard 日志版本号前六位 , 回到指定版本处;在此版本后的版本不会存在;
git reserve + 版本号前六位 回到指定版本处,可是会生成一个新版本;在此版本后的版本依然存在
五、恢复刚刚手动删除的文件:git checkout 提交生成码 文件全程 ;
六、分支操做:
查看分支:git branch ;会列出本地全部分支;
建立分支:git checkout 分支名称 ;
切换分支:git checkout 分支名称;
建立并切换到某个分支上(合并上面两个操做):git checkout -b 分支名称;
删除分支:git branch -d 分支名称;
在master分支上合并分支:先切换到master分支上再输入命令:git merge 分支名称;
七、git 操做github上的项目:
克隆线上路径到本地上: git clone 仓库路径(eg:http://github.com/Summer/jd.git);
而后各类修改添加功能,完了以后添加git add . 再提交git commit -m "添加了轮播图";
检查无误后上传到github上:git push -v origin 分支名;此过程须要github用户名和密码;
次日上班第一件事就是把代码拉下来:a: git pull ,他还会直接作一个commit操做;
b: git fetch 只有更新操做 。建议使用 git pull;
再进行各类修改添加提交操做。
八、ctrl + CC强制退出。