Git

作者: 码农GG | 来源:发表于2020-03-16 11:59 被阅读0次

1.版本控制

2.Git简介

3.Git命令行操作

3.1安装

image.png image.png image.png image.png
image.png
image.png
image.png
image.png
image.png

3.2结构

image.png

3.3git和代码托管中心

本地库和远程库

3.3.1团队内部协助

image.png
3.3.2外部协助
image.png

3.4Git命令行操作
3.4.1本地初始化
命令:git init
效果:

image.png
注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱改动

3.4.2设置签名
形式
用户名:tom
email地址:gm@126.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号,密码没有任何关系。
命令:
3.4.2.1项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom
git config user.email aa@126.com

image.png

3.4.2.2系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom
git config --global user.email aa@126.com

image.png

信息保存位置:


image.png

级别优先级
就近原则:项目级别优先于系统用户级别。二者都有时采用项目级别的签名
如果只有系统用户级别的签名,就以系统用户级别的签名为准
二者都没有不允许

3.4.3基本操作
3.4.3.1命令
状态查看操作:
git status 查看工作区,缓存区状态

添加操作:
git add [file name]
将工作区的“”新建、修改“” 添加到缓存区

提交操作:
git commit -m "message info" [file name]
将暂存区的内容提交到本地库

查看历史记录:
git log


image.png

查看版本指针信息
git log --pretty=oneline


image.png

git log --oneline


image.png

git reflog


image.png

HEAD@{移动到当前版本需要多少步}

3.4.3.2.版本的前进和后退
1.基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard 43ef291

2.使用^符号:只能往回退
git reset --hard HEAD^^
注意:一个^表示后退一步

3.使用~符号
git reset --hard HEAD~1
注意:~后数字表示后退n步

3.4.3.3reset 命令的三个参数对比
--soft
仅在本地库移动

image.png

--mixed
在本地库移动HEAD指针
重置暂存区


image.png

--hard
在本地库移动HEAD指针
重置暂存区
重置工作去


image.png

3.4.4删除文件并找回
前提:删除前,文件存在时的状态提交到了本地库
操作:git reset --hard[指针位置]
删除操作已经提交到本地库:指针位置指向了历史记录
删除操作尚未提交到本地库:指针位置使用HEAD

3.4.5比较文件差异
git diff [文件名]
将工作区中的文件和暂存区进行比较

git diff[本地库中历史版本][文件名]
将工作区中的文件和本地库历史记录比较

不带文件名比较多个文件

3.5分支管理
3.5.1什么是分支
在版本控制过程中使用多条线推进多个任务。

image.png

3.5.2分支好处
1.同时并行推进多个功能开发,提高开发效率
2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可。

3.5.3分支操作

3.5.3.1创建分支
git branch [分支名]
3.5.3.2查看分支
git branch -v
3.5.3.3切换分支
git checkout[分支名]

image.png

3.5.3.4合并分支
1.切换到接受修改的分支上(被合并,增加新内容)
git checkout[被合并分支名]
2.执行 merge
git merge[有新内容分支名]

image.png

3.5.3.5解决冲突
冲突的表现

image.png
冲突的解决
1.编辑文件,删除特殊符号
2.把文件修改到满意的程度,保存退出
3.git add[文件名]
4.git commit -m "日志信息"
注意:此时commit 一定不能带具体文件名

3.6Git 基本原理
3.6.1哈希

image.png image.png

3.6.2保存版本机制

image.png
image.png
image.png
image.png

3.6.3git分支管理机制

image.png
image.png
image.png image.png image.png

相关文章

网友评论

      本文标题:Git

      本文链接:https://www.haomeiwen.com/subject/lmxvshtx.html