Git——C站最详细的Git教程,一篇学会Git(window\linux通用)
文章目录
Git简介
Git
- Git 是目前世界上最先进的分布式版本控制系统(没有之一)
作用
- 源代码管理
为什么要进行源代码管理?
- 方便多人协同开发
- 方便版本控制
Git的诞生
- 作者是 Linux 之父:Linus Benedict Torvalds
- 当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)
Git管理源代码特点
-
1.
Git是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、…![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSZEN22s-1684476308651)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%88%86%E5%B8%83%E5%BC%8F%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/214OT0JR84.png)
-
2.
Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cuuu6xtm-1684476308653)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/Ta7D53P1cL.png)
Git操作流程图解
Git服务器 --> 本地仓库 --> 客户端 --> 本地仓库 --> Git服务器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wMofyoQ9-1684476308654)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/GIT%E6%93%8D%E4%BD%9C%E5%9B%BE%E8%A7%A3.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/22236XP584.png)
工作区暂存区和仓库区
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-shefSdjr-1684476308655)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%B7%A5%E4%BD%9C%E5%8C%BA%E6%9A%82%E5%AD%98%E5%8C%BA%E5%92%8C%E4%BB%93%E5%BA%93%E5%8C%BA-16844667931571.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/eSA3a1CIb5.png)
工作区
- 对于
添加、修改、删除文件的操作,都发生在工作区中
暂存区
- 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分
仓库区
- 仓库区表示个人开发的一个小阶段的完成
- 仓库区中记录的各版本是可以查看并回退的
- 但是在暂存区的版本一旦提交就再也没有了
Git单人本地仓库操作
- 课程目标:学习常用的Git终端命令
- 提示:本地仓库是个
.git隐藏文件
1.安装git
sudo apt-get install git
密码:chuanzhi
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGUgx4RQ-1684476308658)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%AE%89%E8%A3%85Git-16844669628062.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/dfdd44dPRb.png)
可以到 GitHub 的页面上下载 exe 安装文件并运行:
安装包下载地址:https://gitforwindows.org/
官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/。
2.查看git安装结果
git
3.创建项目
-
在桌面创建
test文件夹,表示是工作项目Desktop/test/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQcXiowz-1684476308661)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/image-20230519113331535.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/b6fLX1O0a5.png)
4.创建本地仓库
-
进入到
test,并创建本地仓库.git -
新创建的本地仓库
.git是个空仓库cd Desktop/test/ git init![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G58TIySZ-1684476308663)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%88%9B%E5%BB%BA%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93-16844672443655.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/560UK1R206.png)
-
创建本地仓库
.git后![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gz4OApUc-1684476308664)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E7%A9%BA%E4%BB%93%E5%BA%93-16844672496926.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/f17RX696d7.png)
5.配置个人信息
git config user.name '张三'
git config user.email 'zhangsan@163.com'
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lRF1jQjL-1684476308666)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF-16844672592717.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/8f68C1fA73.png)
-
配置个人信息后
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4i58WU84-1684476308667)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF%E5%90%8E-16844672677588.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/O526JMbL6c.png)
6.新建py文件
-
在项目文件
test里面创建login.py文件,用于版本控制演示![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhKnGG5U-1684476308669)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E6%83%85-16844672825239.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/S10Jb1AI69.png)
7.查看文件状态
-
红色表示新建文件或者新修改的文件,都在工作区.
-
绿色表示文件在暂存区
-
新建的
login.py文件在工作区,需要添加到暂存区并提交到仓库区git status![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlwKKncM-1684476308670)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9F%A5%E7%9C%8B%E6%96%87%E4%BB%B6%E7%8A%B6%E6%80%81-168446729131510.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/AbIBUT1c2P.png)
8.将工作区文件添加到暂存区
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add login.py
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWDZXViK-1684476308672)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%9A%82%E5%AD%98%E5%8C%BA-168446730137111.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/1R8VMOG6R9.png)
9.将暂存区文件提交到仓库区
-
commit会生成一条版本记录 -
-m后面是版本描述信息git commit -m '版本描述'![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mOrFQUqi-1684476308673)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%8F%90%E4%BA%A4%E5%88%B0%E4%BB%93%E5%BA%93%E5%8C%BA-168446730896512.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/735N4b5308.png)
10.接下来就可以在login.py文件中编辑代码
-
代码编辑完成后即可进行
add和commit操作 -
提示:添加和提交合并命令
git commit -am "版本描述" -
提交两次代码,会有两个版本记录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVuqVt6z-1684476308675)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E4%B8%A4%E6%AC%A1%E7%89%88%E6%9C%AC%E6%8F%90%E4%BA%A4-168446731720913.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/3E00E1333E.png)
11.查看历史版本
git log
或者
git reflog
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKVODtpN-1684476308677)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9F%A5%E7%9C%8B%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95log-168446732409214.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/35CB042U7O.png)
12.回退版本
-
方案一:
-
HEAD表示当前最新版本 -
HEAD^表示当前最新版本的前一个版本 -
HEAD^^表示当前最新版本的前两个版本,以此类推… -
HEAD~1表示当前最新版本的前一个版本 -
HEAD~10表示当前最新版本的前10个版本,以此类推…git reset --hard HEAD^![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8cj7eNmY-1684476308678)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%9B%9E%E9%80%80%E7%89%88%E6%9C%ACHEAD-168446738393319.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/X5FF3256dA.png)
-
-
方案二:当版本非常多时可选择的方案
-
通过每个版本的版本号回退到指定版本
git reset --hard 版本号![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3wWiPDVp-1684476308679)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%9B%9E%E9%80%80%E7%89%88%E6%9C%AC%E7%89%88%E6%9C%AC%E5%8F%B7-168446736568018.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/9c974X87Mc.png)
-
13.撤销修改
-
只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
-
撤销仓库区的代码就相当于回退版本操作
-
撤销工作区代码
-
新加代码
num3 = 30,不add到暂存区,保留在工作区git checkout 文件名![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wq9Vl9NZ-1684476308683)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E5%B7%A5%E4%BD%9C%E5%8C%BA%E4%BB%A3%E7%A0%81%E5%89%8D-168446740552620.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/Y4M2J4V8bc.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7x497kdd-1684476308683)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E5%B7%A5%E4%BD%9C%E5%8C%BA%E4%BB%A3%E7%A0%81%E5%90%8E-168446741063421.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/34cG6I3I38.png)
-
-
撤销暂存区代码
-
新加代码
num3 = 30,并add到暂存区# 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 # 第二步:撤销工作区代码 git checkout 文件名![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSIuq9ah-1684476308685)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E6%9A%82%E5%AD%98%E5%8C%BA%E4%BB%A3%E7%A0%81-168446742386822.png)]](https://file.cfanz.cn/uploads/png/2023/05/20/6/764O1VaV74.png)
-
-











