git是分布式版本管理工具,一台电脑既可以是客户端,也可以是服务端。工作过程中可以断开网络。svn是集中式版本管理工具,一台服务器控制很多客户端,使用过程不能断网。
git的优点有:适合分布式开发,强调个体,公共服务器压力和数据量都不会太大,速度快,灵活,可以离线工作。
svn的优点有:管理方便,逻辑明确,集中式管理更能保证安全性,适合人数不多的项目开发。
git中的三个概念:
1、版本库:在初始化git版本库之后会生成一个隐藏的文件, .git可以将该文件理解为git的版本库repository;
2、工作区:项目目录;
3、暂存区:.git目录中的index文件就是暂存区,同时,git还为我们自动生成一个master分支以及指向该分支的指针head在.git文件夹中。
三者关系可以理解为我们打开开发环境如Hbuilder,里面的内容即工作区的内容,在工作区里面有的代码以及配置文件等我们需要提交到版本库里面,最终是到了分支master的上面,暂存区只是一个临时保存修改文件的地方。
注意git需要先安装服务端,再安装客户端。
git常用的操作命令:
1、检出git的项目仓库:项目目录下右键单击git bash;
本地创建仓库:git init ;git status可查看当前被git管理的文件,空文件夹git不管理。
2、本地项目文件夹修改或新增的文件要先添加到本地的项目仓库下:git add 文件全称(包括扩展名) ;
仅将修改文件添加到暂存区:git add -u ;
添加当前目录的所有 文件到暂存区:git add . 或 git add --all 或 git add * 或git add -A; 工作中推荐用git add . 方便快捷不出错。
3、添加好文件后要把暂存区的文件提交到当前分支上:git commit -m "提交日志" (此处一定要写);
查看当前分支的版本历史(查看日志信息):git log;window系统下会自动退出,一些其他系统需要手动使用英文q退出。
4、回退到某个版本上:a: git reset --hard 日志版本号前六位 , 回到指定版本处;在此版本后的版本不会存在;
git reserve + 版本号前六位 回到指定版本处,但是会生成一个新版本;在此版本后的版本依然存在
5、恢复刚刚手动删除的文件:git checkout 提交生成码 文件全程 ;
6、分支操作:
查看分支:git branch ;会列出本地所有分支;
创建分支:git checkout 分支名称 ;
切换分支:git checkout 分支名称;
创建并切换到某个分支上(合并上面两个操作):git checkout -b 分支名称;
删除分支:git branch -d 分支名称;
在master分支上合并分支:先切换到master分支上再输入命令:git merge 分支名称;
7、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;
再进行各种修改添加提交操作。
8、ctrl + CC强制退出。