Git
1.是什么?能做什么?
Git是开源的分布式的版本控制系统;采用了分布式版本库的方式,不必服务器端软件支持,用于敏捷高效地处理任何或小或大的项目。
(注:之后会有关于版本控制系统 集中式分布式的区别和典型例子)
2.Git的发展
2002年,Linus选择了一个商业的版本控制系统BitKeeper;
2005年,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git。
2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
3.集中式与分布式
版本管理:版本管理就是管理更新的历史记录。
集中型:集中型将所有的数据集中存放在服务器中,便于管理。但是一旦无法连接服务器,就会无法获取最新的源代码。
分散型:GitHub将仓库fork给每一个用户。Fork就是将GitHub的某个特定仓库复制到自己的账户下。开发者不必远程连接就可以进行开发。
git每个历史版本都存储完整的历史文件,而SVN则只存储每个版本的差异。
4.Git的安装与配置
安装包下载地址:http://msysgit.github.io/
下载后,找到git Bash,跳出来一个类似命令窗口,说明安装成功
配置:
(1)注册账号及创建 :github
(2)username和email
$git config --global user.name"Your Name"
$git config --global user.email "[email protected]"
(Git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置)
(3)在本地创建SSH KEY,成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key,回到github,进入Account Settings,左边选择SSH Keys,粘贴key
命令如下:$ ssh-keygen-t rsa -C"[email protected]"
验证是否成功: $ssh -T git@github.com输入yes
成功则显示 You've successfully authenticated, but GitHub does not provide shell access 。
5.工作流程
(1)克隆git资源作为工作目录
(2)在克隆的资源上修改或添加文件
(3)如果有其他人修改了,你可以更新资源
(4)提交前查看修改
(5)提交修改
(6)如果修改有错误,可以撤回提交,在修改后再次提交
此处可以参考http://www.runoob.com/git/git-workflow.html,里面有详细的工作流程图
此外,你还需要了解提交的流程:
6.创建版本库
版本库也叫仓库,可以将它理解成一个目录。git可以对该目录下的所有文件进行管理,并对每个文件的变更进行追踪。
6.1
在想要的路径下,右键git Bash。输入命令git init。该命令使这个目录变成git可以管理的仓库。成功后会多一个.git文件
cd命令用于切换当前工作目录,mkdir用于创建一个目录,pwd命令用于显示当前路径
6.2将文件添加到版本库
6.2.1在该版本库下新建一个文件1.txt,使用命令git add 1.txt 将文本添加到暂存区中
如上,表示添加成功。
命令rm 1.txt表示删除文件,然后commit。如果没有commit都可以恢复删除 git checkout -- 2.txt
6.2.2使用git commit -m “添加文本文件” 告诉git将文件提交到仓库
6.2.3使用git status查看是否还有文件没有提交
说明没有文件未提交
6.2.4修改1.txt内容,使用git status
表示1.txt已经修改,但是未提交修改
若要查看修改了什么内容,使用git diff 1.txt
6.2.5重复添加步骤,提交并查看状态
6.2.6撤销修改
方式一:直接修改文件,重新add
方式二:直接恢复上一个版本
方式三:使用chenckout --1.txt丢弃工作区的修改
7.版本回退
7.1使用git log命令查询历史记录
7.2使用git reset --head HEAD^ 回退上一版本,$ git reset --hard HEAD^^回退上上版本
$ git reset --hard HEAD~100 回退上100 个版本
7.3使用cat 命令查询内容
7.4使用reflog查询版本号
7.5使用git reset --hard 版本号 回复相应的版本