我的git第一天笔记

1.版本控制系统

​ 本身是一个软件,它能够记录一个或若干个文件的变化

1.1本地版本控制系统

​ 指的是在本地开发,实现版本的手动控制

缺点:不能进行多人协作

1.2集中式版本分布系统

​ 有一台中央处理的服务器,用于管理代码,所有的代码都要上传到这个中央服务器上

优点:解决了多人协作的问题,所有人通过中央处理器实现代码同步

缺点:

​ 1.特别依赖中央处理服务器

​ 2.特别依赖网络

我的git第一天笔记_第1张图片
集中式版本控制.png
1.3分布式版本控制系统

有一个远程的仓库用于存储代码,每个用户的本地会生成远程仓库的完整镜像,生成本地仓库,每个人通过将代码保存到本地仓库中,本地仓库会在有网络的的时候将数据同步到远程仓库中,远程仓库发生更新,会将数据同步到每个用户的本地仓库中,实现代码同步

优点:

​ 1.解决了多人协作的开发问题

​ 2.不是特别的依赖于远程仓库

​ 3.不是特别的依赖于网络

我的git第一天笔记_第2张图片
分布式版本控制系统.png

2.git的使用

2.1git版本控制的三个区

​ 工作区:用户编辑代码的区域,一般指的是编辑器的编辑的区域

​ 暂存区:和仓库区一样,保存在.git的隐藏文件夹内部

​ 仓库区:保存在.git的隐藏文件夹下

​ 文件的保存的流程:工作区--->暂存区--->仓库区

​ 第一次使用需要配置邮箱和用户名,配置命令如下:

​ 配置邮箱:git config --global user.email "邮箱"

​ 配置用户名: git config --global user.name

我的git第一天笔记_第3张图片
三个区.png
2.2初始化git

​ 命令:git init

​ 作用:会自动生成一个.git的隐藏文件夹

我的git第一天笔记_第4张图片
init初始化.png
2.3查看文件状态

​ 命令:git status

​ 简化命令:git status -s

​ 作用:查看当前文件的状态,红色表示在工作区,绿色表示在暂存区

我的git第一天笔记_第5张图片
status状态1.png
2.4添加到暂存区

​ 命令:git add . / --all /-A 表示将所有内容添加到暂存区

​ git add css 表示将css文件夹添加到暂存区

​ git add *.js 表示将所有js文件添加到暂存区

​ git add ...

​ 作用:将文件或文件夹添加到暂存区

add添加.png
2.5添加到仓库区

​ 命令: git commit -m "说明信息"

​ 快速提交:git commit -a -m "说明信息"

​ 修改最近的一次说明信息: git commit -amend -m “说明信息”

​ 作用:将文件内容从暂存区提交到仓库区

我的git第一天笔记_第6张图片
commit添加到仓库区.png
2.6查看保存日志

​ 命令:git log 查看仓库区完整的提交日志


我的git第一天笔记_第7张图片
log日志.png

​ git log --oneline 查看简化版的提交日志


我的git第一天笔记_第8张图片
log查看日志.png

​ git reflog 查看所有的日志信息
我的git第一天笔记_第9张图片
reflog查看所有日志信息.png

​ 作用:可查看当前仓库区提交的日志

2.7查看当前用户信息

​ 命令:git config --list

​ 重置当前用户的邮箱和用户名

​ 重置邮箱:git config --unset --global user.email

​ 重置用户名:git config --unset --global user.name

我的git第一天笔记_第10张图片
config-list查看用户信息.png
2.8比较区的内容

​ 命令:
​ 比较 工作区暂存区:git diff

我的git第一天笔记_第11张图片
diff比较.png

​ 比较 暂存区仓库区:git diff --cached
我的git第一天笔记_第12张图片
diff -cached比较.png

​ 比较 工作区仓库区 :git diff HEAD

我的git第一天笔记_第13张图片
diff HEAD比较.png

​ 比较仓库区版本的内容:git diff 版本号1 版本号2
如果版本号2的内容多于版本号1的内容,差异部分显示绿色,如果版本号2的内容小于版本号1的内容,差异部分显示红色

我的git第一天笔记_第14张图片
版本号比较.png
2.9重置版本

命令:git reset 暂无

重置仓库区:git reset --soft

重置暂存区和仓库区:git reset --minxed

重置版本的工作区、暂存区和仓库区:git reset --hard

将版本回退到上一个版本: git reset --hard head~1

将版本回退到上上个版本:git reset --hard head~2

我的git第一天笔记_第15张图片
重置版本.png
2.10分支操作

为什么要使用分支?

​ 如果一半的代码不提交可能会丢失,但是提交了可能会影响别人的开发进度,这个时候就需要要分支控制了

​ 分支控制的特点:分支之间是独立的,不会相互影响

分支的目的:保证功能独立性,一般开发复杂的功能都会先开一个分支,在分支中进行提交,等功能完成后,一次性合并到主分支

分支的实现原理:

​ 1.每次commit提交,都会在仓库区生成一个版本号

​ 2.在第一次生成版本后,会自动创建一个master的指针,指向当前的版本

​ 3.所有的分支在本质上就是指针

​ 4.默认就有一个HEAD的指针,永远指向当前的分支

命令:

​ 查看所有分支: git branch 当前的分支的颜色是绿色的,而且前面有一个白色的小雪花

我的git第一天笔记_第16张图片
查看分支.png

​ 创建分支:git branch 分支名称

创建分支.png

​ 切换分支 : git checkout 分支名称

我的git第一天笔记_第17张图片
切换分支.png

​ 删除分支:git branch -d 分支名

删除分支.png

​ 合并分支:git merge 分支名称 如果当前分支是合并分支的祖先分支,可以进行快速合并

我的git第一天笔记_第18张图片
合并分支.png

​ 快速创建并切换:git branch -a 分支名

我的git第一天笔记_第19张图片
快速创建并切换.png

合并分支:

1.如果当前分支是合并分支的祖先分支,可进行快速合并

2.如果当前分支不是祖先分支,可能会产生冲突(即同时修改同一文件)
3.合并分支时,如果出现冲突,只能手动处理,再次提交,一般的作法,把自己的代码放到冲突代码的后面即可。

你可能感兴趣的:(我的git第一天笔记)