一、版本控制工具
SVN:是集中式版本控制代表。缺点:仓库只有一个。
Git:是分布式版本控制代表。可以避免单点故障。
版本控制工具具备的功能:
1、协同修改
2、版本管理
3、权限控制
4、历史记录
5、分支管理
二、git优势
1、大部分操作是在本地完成的,不需要联网。 hash
2、完整性保证
3、尽可能的去添加数据而不是删除或修改数据 内部是以快照执行的。
4、分支操作非常快捷流畅
5、与Linux命令完全兼容。
三、git安装
使用vim编辑器,默认
四、git工作区域
代码托管中心的任务就是维护远程库。
五、本地库和远程库的交互方式
团队以外的人来参与项目:使用fork
六、git命令行操作
linux 操作:
ls -lA 显示隐藏文件
ls -l | less 分页去查看
1、本地库初始化
命令:git init
效果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190130111624246.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190130111739494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xlZXVl,size_16,color_FFFFFF,t_70)
注意:.git目录中存放的事本地库相关的子文件目录和文件,不要删除也不要修改。
2、设置签名
形式:
用户名:leeue
email地址:leeue@foxmail.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库的账号,没有任何关系
命令:
项目级别/仓库级别
在项目目录下设置仅在当前目录下生效。
git config user.name leeue
git config user.email leeue@foxmail.com
系统级别:
git config --global user.name leeue
git config --global user.email leeue@foamail.com
在系统中设置。登录当前操作系统的用户范围。
根据就近原则,项目级别优先系统用户级别。二者都有时使用项目级别。
二者都没有时不允许的。
系统config
git status :查看当前仓库状态
git 专属命令都是以git开头
添加了一个good.txt后 git status查看
执行git add 文件名后 。add后,到由工作区---->缓存区了。
再查看变成绿色了。
git commit :从暂存区提交到本地库
执行 :git commit goot.txt命令:
出现:
写入注释然后再提交后
linux命令在vim编译器命令
按住esc+冒号 然后输入 set nu 可以看到行号
changed 4 表示增加了4行
再git status查看 跟什么没做的时候显示的信息一样。
修改了good.txt后,再git status 查看状态后变成了 红色
上面提示可以使用
git add 然后再commit
或者直接git commt -a 来提交good.txt修改后的文件。
第二次提交
使用 git commit -m "注释" 文件名
来提交。
七、git版本的前进和后退
1、查看日志命令
git log: 查看版本信息 很详细
git log --pretty=oneline :查看日志更好看,更简洁一点的命令.以一行的形式来显示
git log --oneline :以更简洁的方式来显示
git reflog 可以看到head要移动几个值。
HEAD@{移动到当前版本需要多少步}
多屏显示控制方式:空格向下翻页,b向上翻页,q退出
基于索引值前进后退版本操作:有3种操作方式
1、基于索引值操作(推荐使用这个方式)
2、使用^符号操作
3、使用~符号操作
基于索引值操作 可以往后退,往前进
命令:
git reset --head 索引值
使用 ^ 往后退一步
命令: git reset --hard HEAD^ 退一步使用一个^
命令git reset --head HEAD~n
向后退n步。 只能后退
八、hard和soft以及mixed参数对比
git reset --hard [索引值]
reset 命令的三个参数对比
--soft 参数 仅仅在本地库移动HEAD指针
–mixed 参数 在本地库移动HEAD指针,也会重置暂存区。
mix命令将暂存区和本地库都向后退一步了。
–
--hard 参数 在本地库移动HEAD指针,重置暂存区,重置工作区。
git颜色标记
红色:表示要被提交到暂存区但是没有被提交的 (没有执行add操作)
绿色:表示已经被提交到暂存区但是没有被提交到仓库 (没有执行commit操作)