一、Git介绍
1、git说明
git是一个分布式的版本控制系统/工具。
其他版本控制工具:SVN、CVS
数据存储上:直接快照,不是差异化比较
- git中文件三种状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mlOJd3FZ-1619139961560)(…/…/…/images/image-20210421100216750.png)]
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
文件在工作区被修改,然后被添加到暂存区 ,从暂存区 提交到 git仓库
基本的 Git 工作流程如下:
- 在工作区中修改文件。
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
2、git 基本命令
- 初始化
# 初始化仓库
git init
- 添加文件
# 添加文件到暂存区
git add
- 提交仓库
# 提交更新 找到暂存区的文件,将快照存储到git仓库
3、远程仓库命令
- 克隆
git clone 地址
- 拉取
git pull
- 推送
git push
二、分支
1、创建分支
git branch 分支名
2、切换分支
git checkout 分支名
3、查看分支
git branch
4、删除分支
git branch -d 分支名
5、merge合并分支
git merge dev
我们先切换到 主分支上 然后在主分支上 执行 合并 dev分支
6、冲突
在合并的时候如果 不是 Fast-Forward 形式,则 可能会产生冲突
如果合并的双方 都对同一个文件的同一行做了不同的修改,则会造成冲突,合并的一方应该用谁的。
$ git merge dev
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
打开a.txt文件查看
中国
<<<<<<< HEAD # 冲突开始
教育
无敌
======= # 两个分支 分开
无双
>>>>>>> dev #冲突结束
三、git其他操作
1、查看日志
git log
E:\workspace2021\shixun01\resp_2005A>git log
commit 2a321ed5c76d3721d10ccbcd5aa3aed07ea4cdfa (HEAD -> master)
Author: Lily <johndoe@example.com>
Date: Wed Apr 21 10:47:12 2021 +0800
add gitignore
commit 299d6b8d28ebe1d0d4c896ffdf550fa572f7730d
Author: Lily <johndoe@example.com>
Date: Wed Apr 21 10:37:20 2021 +0800
<E5><88><9D><E5><A7><8B><E5><8C><96><E9><A1><B9><E7>AE>
每一个请求 都有一个唯一的hash值
2、回滚
1.git reset --hard HEAD^1,回滚到上个版本
2.git reset --hard HEAD^2,回滚到前两个版本
3.git reset --hard xxx(版本号或版本号前几位),回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号
git reset --hard 299d6b
会回滚到 指定的提交版本上
查看操作日志:git reflog
版本号 操作记录
提交3:在 a文件中 添加 积云 提交
提交4: 在a文件中 添加 高薪就业提交
3、日志查看 提交记录
4、可以实现 提交的回滚
5、创建 一个分支 dev 切换到 dev分支
6、在dev分支上 修改a.txt文件 添加 Hello 中国内容 然后 提交
7、切换回master分支 然后 合并dev分支
查看操作日志:git reflog
版本号 操作记录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lI2r2zUZ-1619139961563)(../../../images/image-20210421142158136.png)]