Git 教程
目录
- 1.简介:
- 2.安装Git
- 3.Git 如何工作
- 状态
- 区域
- 4.使用Git
- 5.Git配置
- 5.1 创建仓库 - repository
- 5.2 配置
- 5.2.1 --global
- 5.2.2 检查配置
- 6. 查看工作区的文件状态
- 6.1什么是工作区
- 6.2 如果显示乱码的解决方式
- 7.在工作区添加单个文件
- 8. 添加工作区文件到暂存区
- 9. 创建版本
- 10. 查看提交日志
- 11. 修改默认编辑器
- 12. 删除
- 13. 撤销重置
- 14. 回退版本
- 15. 比较
- 16. 分支
- 16.1 查看分支
- 16.2 创建分支
- 16.3 切换分支
- 16.4 分支合并
- 16.5 删除分支
- 16.6 合并记录
- 16.7 rebase 操作
- 16.8 合并冲突
- 17 标签
- 总结
1.简介:
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。
Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。
2.安装Git
- 可以前往Git官网安装Git
- 按照默认程序安装即可
- 安装完成后,打开Git bash软件,弹出一个类似cmd的命令行窗口,证明安装成功。

3.Git 如何工作
首先,要了解两个概念
- 状态
- 区域
状态
git提供了三种(也可以说是四种)不同的记录状态已修改(modified)已暂存(staged)已提交(committed)
有一个特殊的状态未追踪(Untracked)
区域
git 提供了三个不同的工作区,用来存放不同的内容工作目录暂存区域Git 仓库

4.使用Git
- 首先创建一个新的文件夹

- 选中文件夹路径并输入cmd进入
- 在这里面输入相关的git指令操作git

git工作流程

5.Git配置
5.1 创建仓库 - repository
- 进入刚打开的空文件的黑窗口输入
git init初始化仓库
git init
- 该命令将创建一个名为
.git的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要轻易改动 - 当一个项目被 Git 初始化以后,只是表示我们希望通过 Git 来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是
未追踪(Untracked)的状态
5.2 配置
-
当安装完 Git 应该做的第一件事就是设置你的
用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改git config user.name "你的姓名"git config user.email "你的邮箱"
5.2.1 --global
-
通过
--global选项可以设置全局配置信息git config --global user.name "你的姓名"git config --global user.email "你的邮箱"
5.2.2 检查配置
# 打印所有config
git config --list
# 打印指定config
git config user.name
6. 查看工作区的文件状态
git status
该指令就是查看工作区的文件状态
6.1什么是工作区
当前的文件夹即为现在的工作区
6.2 如果显示乱码的解决方式
1. git status 显示乱码
git config --global core.quotepath false
终端乱码
进入windoes的cmd 然后分别输入以下五行
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8
7.在工作区添加单个文件
-
cd .> 文件名cd .> 1.txt这样就能在工作区添加一个名为1.txt的文件打开文件直接文件名加后缀即可1.txt 即可打开文件
8. 添加工作区文件到暂存区
git addgit add 1.txt # 添加多个文件 git add 2.txt 3.txt # 添加整个目录 git add ./a # 添加多个目录 git add ./b ./c # 添加所有文件 git add .- 未提交状态

- 提交状态

9. 创建版本
git commit
将暂存区里的改动给提交到本地 git 仓库,也就是为这次工作
(一般会把某个具有特定意义的工作作为一个版本,它可以是多个文件的变化)
每次提交同时会生成一个 40 位的哈希值,作为该次提交版本的唯一 id
每次提交都需要填写备注信息
git commit
# 会调用默认(或自定义)的文本编辑器
这样即为成功
退出为:
先按esc键,然后输入::wq即可
单行备注
git commit -m 备注信息
这样即为成功
修复提交
git commit --amend -m 提交
修复(替换上一次)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中
10. 查看提交日志
git log
// 完整格式
git log
// 简要格式(单行)
git log --oneline
这样即为成功
commit dbdeb5f6c7ea0e33497f1a906ffca2e60a12acd9 (HEAD -> master)这行是你提交时生成的秘钥回退版本时能用到
11. 修改默认编辑器
- 这个指令即为修改常用编辑器
git config core.editor 你常用的编辑器名字
打开一个vue文件如果弹出编辑器即为成功
12. 删除
git rm
# 从 git 仓库与工作区中删除指定文件
git rm 文件# 只删除 git 仓库中的文件
git rm --cached 文件# rm 以后,需要 commit 这次操作,否则 rm 将保留在暂存区
git commit -m 修正
删除状态:
修正状态:
13. 撤销重置
git reset
从暂存区中撤销到工作区
// 从暂存区中撤销一个指定文件
git reset HEAD 文件名称
// 从暂存区撤销所有文件
git reset HEAD .
撤销状态
14. 回退版本
# 回退到指定的 commitID 版本
git reset --hard commitID
commitID为你保存到仓库里面的秘钥
回退状态
15. 比较
# 比较 工作区和暂存区
git diff 文件
# 比较 暂存区和仓库
git diff --cached [commitId] 文件
# 比较 工作区和仓库
git diff commitId filename
# 比较 仓库不同版本
git diff commitId1 commitId2
16. 分支
我们的开发就像是游戏的任务,默认是在主线(master)上进行开发的。
许多时候,还有各种支线任务,git 支持我们创建分支来进行项目开发
16.1 查看分支
git branch
16.2 创建分支
git branch 分支名称
16.3 切换分支
git checkout 分支名称
# 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称
分支状态
16.4 分支合并
# B 合并到 A,需要切换到 A 分支
git merge 被合并分支# 查看已经合并的分支
git branch --merged
# 查看未合并的分支
git branch --no-merged
16.5 删除分支
# 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
# 强制删除
git branch -D 分支名称
分支状态
16.6 合并记录
rebase
# 合并 HEAD 前两个祖先记录
git rebase -i HEAD~2
~ 与 ^
~ : 纵向
^ : 横向

16.7 rebase 操作
# p, pick = use commit => 使用
# r, reword = use commit, but edit the commit message => 使用,但重新编辑说明
# e, edit = use commit, but stop for amending => 使用
# s, squash = use commit, but meld into previous commit => 使用,但合并上一次
# f, fixup = like "squash", but discard this commit's log message => 就像 squash 那样,但会抛弃这个 Commit 的 Commit message
# x, exec = run command (the rest of the line) using shell => 执行脚本
# d, drop = remove commit => 移除
git rebase -i HEAD~3
# 弹出编辑器,根据需要的进行修改,然后保存
# 如果为 r,s 则会再次弹出编辑器,修改新的 commit message,修改之后保存
如果出现一些问题,可以通过
git rebase --edit-todo和git rebase --continue进行重新编辑保存
16.8 合并冲突
有的时候,不同的分支可能会对同一个文件内容和位置上进行操作,这样在合并的过程中就会产生冲突
- 查看冲突文件
- 修复冲突内容
- 提交
合并冲突
17 标签
有的时候,我们希望给某一个特定的历史提交打上一些标签
- 新建tag
git tag -a v1.0.0 HEAD/commitId
- 查看tag
git tag
输入完成按完回车键会弹出下图即为成功
总结
以上就是Git本地仓库的讲解及常用指令的具体使用和效果展示以后也会推出远程仓库的讲解和使用方法。希望本篇文章能够帮助到你,不懂得可以评论区或者私信问我,我也会一 一解答。谢谢观看!
我的其他文章:https://blog.csdn.net/m0_60970928?type=blog
相关文章:
Git 教程
目录1.简介:2.安装Git3.Git 如何工作状态区域4.使用Git5.Git配置5.1 创建仓库 - repository5.2 配置5.2.1 --global5.2.2 检查配置6. 查看工作区的文件状态6.1什么是工作区6.2 如果显示乱码的解决方式7.在工作区添加单个文件8. 添加工作区文件到暂存区9. 创建版本10…...
一种全新的图像滤波理论的实验(二)
一、前言 2021年12月31日,我发布了基于加权概率模型的图像滤波算法的第一个实验,当时有两个关键问题没有解决: 1、出现了大面积的黑色区域,最近考虑把这个算法实际应用在图像和视频的压缩领域,于是通过对程序的分析&a…...
Boost库文档搜索引擎
文章目录综述效果展示去标签化,清理数据构建索引用户查询综述 该项目使用了BS架构,实现了用户对Boost库进行站内搜索的功能, 用户输入关键字使用http协议通过ajax将数据发送给后端服务器,后端进行分词, 通过倒排索引…...
Linux中安装JDK
Linux中安装JDK一 、下载JDK包1、下载网址2、往下翻,找到 java83、继续往下翻找到要下载的版本 64位linux版本二 上传jdk安装包三 开始安装整体过程1、解压文件2、查看解压文件3、进入解压文件夹确认4、配置环境变量5、重新加载环境变量6、确认安装成功一 、下载JDK…...
宝塔面板公网ip非80端口非443端口部署ssl
有不少人使用家用宽带,虽然申请下来了公网ip,但是运营商封了80与443端口,但仍想使用ssl证书 一、仅封80端口 1、先在宝塔面板里创建网站,域名为test.xxx.cn:8085 2、再到域名运营商做A记录解析,此时可以通过http://…...
手撕八大排序(上)
排序的概念及其引用: 排序的概念: 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有…...
clickhouse 怎么统计每天0点到10点的某个字段的数据量
比喻:统计最近一周0点到10点期间每天id的数量 日期:2023-03-23 09:02:22 日期全是这种格式 第一步先把日期转小时:先把小于10小时的查出来 toHour(card_time)<10 select toDate(t.dates) as dates,sum(t.count) as count from ( se…...
[qiankun]-图片加载问题
[qiankun]-图片加载问题开发版本图片加载报错现象描述分析解决方案base64的展示格式静态资源的展示方式取消hash的取值方式,并在主应用中添加图片设置图片的绝对路径根据环境动态设置图片的绝对路径nginx转发方式开发版本 "vue": "^3.2.45", &…...
关于upstream的八种回调方法
1 creat_request调用背景:用于创建自己模板与第三方服务器的第一次连接步骤1) 在Nginx主循环(ngx_worker_process_cycle方法) 中,会定期地调用事件模块, 以检查是否有网络事件发生。2) 事件模块…...
0303泰勒公式-微分中值定理与导数的应用
文章目录1 引入2 泰勒中值定理2.1 泰勒多项式3.2 泰勒中值定理13.3 泰勒中值定理22.4 误差估计4 麦克劳林公式5 常见麦克劳林公式6 泰勒公式相关例题6.1 将函数展成指定的泰勒公式6.1.1 公式法6.1.2 间接展法(变量替换)6.2 利用泰勒公式求极限6.3 确定无…...
日常运维基础命令
commandexplainps -f -u user_name显示指定用户的进程ps aux --sort-pcpu,pmem先以cpu使用量进行排序,cpu使 用一样,以内存使用率排序ps -ef --forest显示ACLII进程数ps --ppid 28208显示父进程的子进程ps -p 14447 -L显示进程的线程ps -e -o pid&#x…...
人员行为识别系统 TensorFlow
人员行为识别系统人员行为识别系统通过TensorFlow深度学习技术,人员行为识别算法对画面中区域人员不按要求穿戴、违规抽烟打电话、睡岗离岗以及作业流程不规范实时分析预警,发现违规行为立即抓拍告警。深度学习应用到实际问题中,一个非常棘手…...
ES-倒排索引BKD原理skiplist
1.Elasticsearch数据存储结构FST、skiplist、BKD-tree、LSM-tree Elasticsearch数据结构存储流程_善思的博客-CSDN博客_elasticsearch 数据结构 number?keyword?傻傻分不清楚 - Elastic 中文社区 ElasticSearch实战(六)-Skip List 跳表算法…...
每天一道大厂SQL题【Day12】微众银行真题实战(二)
每天一道大厂SQL题【Day12】微众银行真题实战(二) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…...
带您了解TiDB MySQL数据库中关于日期、时间的坑
带您了解TiDB & MySQL数据库中关于日期、时间的坑时间的基础知识什么是时间计算时间的几种方法世界时(UT)协调世界时(UTC)国际原子时(TAI)时区的概念中国所在的时区操作系统的时区datetimedatectl数据库…...
【华为OD机试模拟题】用 C++ 实现 - 求字符串中所有整数的最小和
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
harbor 仓库迁移升级
harbor 仓库迁移升级 harbor仓库安装数据传输仓库切换版本 v1.8.0 v2.3.5 harbor仓库安装 环境准备:安装docker详见:docker 的介绍和部署,并下载docker-compose详见:docker 三剑客compose。 现有支持的安装harbor仓库的方式有两…...
评论功能设计思路~
文章目录 评论功能设计框架1、定义2、目标3、动机4、评论类别**5、评论互动****6、评论区展示结构****6.1 主题式****6.2 平铺式****6.3 盖楼式****7、评论排序机制****8、评论加载形式****9、其他**结语评论功能设计框架 1、定义 评论是指针对于事物进行主观或客观的自我印象…...
算法训练营 day52 动态规划 买卖股票的最佳时机系列1
算法训练营 day52 动态规划 买卖股票的最佳时机系列1 买卖股票的最佳时机 121. 买卖股票的最佳时机 - 力扣(LeetCode) 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票…...
3.基于分割的文本检测算法--DBNet++
文章目录1.概况2.DBNet中的主要方法2.1 网络结构2.2 适应特征图融合模块(Adaptive Scale Fusion Module, ASF)3.ASF模块的源码实现参考资料欢迎访问个人网络日志🌹🌹知行空间🌹🌹 1.概况 2022年02月份论文:Real-Time S…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...












