git的用法
目录
一、为什么需要git
二、git基本操作
2.1、初始化git仓库
2.2、配置本地仓库的name和email
2.3、认识工作区、暂存区、版本库
三、git的实际操作
3.1 提交文件
3.2 查看git状态以及具体的修改
3.3 git版本回退 git reset
3.1 撤销修改
四、git分支管理
4.1 理解分支
4.2 创建分支
4.3 合并分支
4.4 删除分支
4.5 合并冲突
4.6 合并分支的两种模式:ff 和 no-ff
4.7 分支策略
五、远程操作
5.1 创建远程仓库
5.2 克隆远程仓库
5.3 推送、拉取操作
一、为什么需要git
先来看看一个场景:老板让你写文件

我们可以用到版本控制器:git

二、git基本操作
2.1、初始化git仓库
git init

2.2、配置本地仓库的name和email
增加:
git config user.name "XXX" 也可在开头加一个 --global ,表示在当前机器的所有仓库上配置
git config user.email "XXX"
删除:
git config --unset user.name "XXX"
2.3、认识工作区、暂存区、版本库
先来创建一个ReadMe文件

思考:ReadMe文件是干什么的?
其实就是这个项目的说明书,比如项目目的、功能、使用方法等基本信息,它可以让其他人一眼看懂项目,并为项目的使用和参与提供指导。它是项目开源和共享的重要组成部分。
图解工作区、暂存区(索引区)、版本库。
暂存区和版本库当中存放的都是git对象库的索引,其实也就是通过一个个git对象,能拿到不同的文件版本

三、git的实际操作
3.1 提交文件

也可以有多个add,一次性commit

git log 查看由近到远的提交记录

3.2 查看git状态以及具体的修改
git status 查看哪些文件修改了

git status只能查看文件有没有修改,并不能查看具体的修改内容
使用 git diff 查看暂存区和工作区具体的修改

git diff HEAD -- [filename] 查看版本库和工作区的差别

3.3 git版本回退 git reset
本质是回退版本库中的内容 ,工作区和暂存区回不回退取决于参数
HEAD说明:
我们这里能够回退是因为我们拿到了 之前版本的 commit id,假如没有的话,我们就不能这样子操作了
如果我们现在拿不到之前的commit id,该怎么补救呢?
使用 git reflog ,可以查看本地每次的提交命令

我们可以发现:版本回退的时候是非常快的,为什么呢?

3.1 撤销修改
git checkout -- 【filename】撤销工作区,暂存区和版本库还得用到git reset 命令
情况一:只是撤销工作区
我们可以使用 git checkout -- 【filename】 (切记加上 -- ,不加就是切换分支的命令了 )

情况二:撤销工作区和暂存区
我们可以用 git reset --mixed HEAD^ 先只把暂存区回退,那么就回到了情况一,然后再用git checkout;

当然,我们也可以直接用一步 git reset --hard HEAD 就行了,但是不推荐,--hard力度太大了,回退整个仓库

情况三:已经commit了,而且没有push
撤销的目的:不影响远程仓库的内容

四、git分支管理
4.1 理解分支

4.2 创建分支
git branch 【新分支名字】

我们再来使用git tree 命令来看一下git的结构发生了变化没有:

4.3 合并分支
我们要想操作dev分支,就需要将HEAD指向dev分支,让dev变成工作分支才行
使用 git checkout 【分支名字】 切换分支

我们在dev上进行提交并合并 使用 git merge 合并

4.4 删除分支
使用 git branch -d 【要删除的分支名字】

4.5 合并冲突
merge 冲突需要手动解决,并且再进行一次提交

4.6 合并分支的两种模式:ff 和 no-ff
模式一: Fast-forward
直接merge就是 ff模式,比较简单,但是不能看出最新提交到底是merge进来的还是正常提交的

模式二:非 Fast-forward ,在merge的时候再进行一次commit
4.7 分支策略
介绍分支管理要遵守的原则
master主分支要求比较稳定,dev分支是开发人员日常操作的代码,还没有经过测试验证

五、远程操作
我们之前的所有操作:分支也好,add,commit也好,都是在本地的仓库进行的,并不能做到多人协助开发,想要多人开发,必须要进行远程操作 ,也就是用到码云(gitee)
5.1 创建远程仓库

5.2 克隆远程仓库
1. 使用HTTPS协议:
这种比较简单,直接就是git clone + 远程仓库的https地址就行了。拉下来之后就能看到我们这时候由fetch 和 push的功能

2. 使用 SSH协议
这中就是用到本地的公匙,并且在gitee上去配置,这种主打一个安全(一般公司都是用的这种)

我们这时候需要去创建 SSH Key

执行完命令之后就能看到 .ssh文件了

我们将id_rsa.pub 的内容配置到gitee上即可
配置完之后,我们就可以直接在本地的xshell上克隆远端仓库了
5.3 推送、拉取操作
我们先来看一下推送,也就是本地代码 push到远程
就是执行完commit之后 直接push就好了

拉取:
拉取的时候是有两种操作的,一种是 git pull ,一种是 git fetch,这两种区别在于:
git pull 会自动执行 git fetch拉取最新版本,然后自动执行git merge 拉取分支合并到本地(有冲突就自己去解决),通过git status 去查看会发现非常干净
git fetch 只是拉取最新版本,并不会自动合并

相关文章:
git的用法
目录 一、为什么需要git 二、git基本操作 2.1、初始化git仓库 2.2、配置本地仓库的name和email 2.3、认识工作区、暂存区、版本库 三、git的实际操作 3.1 提交文件 3.2 查看git状态以及具体的修改 3.3 git版本回退 git reset 3.1 撤销修改 四、git分支管理 4.…...
管道在Vue和Angular中的作用及React的替代方案
管道在Vue和Angular中的作用及React的替代方案 前言管道起源管道特点 前端中管道概念和作用概念作用 React关于管道的替代方案Vue和Angular管道的区别 前言 本文主要讲解管道在Vue和Angular中有哪些作用以及React对于管道概念的替代方案是什么。 管道起源 计算机中的Pipline…...
计算机基础知识57
前后端数据传输的编码格式(contentType) # 我们只研究post请求方式的编码格式: get请求方式没有编码格式-- index?useranme&password get请求方式没有请求体,参数直接在url地址的后面拼接着 # 有哪些方式可以提交post请求:f…...
Flutter 小技巧之 3.16 升级最坑 M3 默认适配技巧
如果要说 Flutter 3.16 升级里是最坑的是什么?那我肯定要说是 Material 3 default (M3)。 倒不是说 M3 bug 多,也不是 M3 在 3.16 上使用起来多麻烦,因为虽然从 3.16 开始,MaterialApp 里的 useMaterial3 …...
激光雷达与惯导标定 | Lidar_IMU_Init : 编译
激光雷达与惯导标定:Lidar_IMU_Init 编译 功能包安装安装ceres-solver-2.0.0 (注意安装2.2.0不行,必须要安装2.0.0) LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数…...
进程池,线程池与跨进程数据共享爬取某岸网图片
看教程的时候看到一个,生产者跟消费者的概念比较有意思,但是给的代码有问题无法正常运行,于是我就捣鼓了一下。 基本概念就是: 生产者: 一个进程获取网页没页的图片连接(主进程…...
【 图片加载】Vue前端各种图片引用
文章目录 一、图片作为js常量(常作为配置项的值 )1、在线链接2、本地图片 二、图片img标签1、一般的src2、动态的src用require3、src可以接收二进制文件blob(如后端返回的、a-upload传的图片) 三、背景图片 一、图片作为js常量(常…...
thinkphp6生成PDF自动换行
composer安装 composer require tecnickcom/tcpdf 示例 use TCPDF;public function info($university,$performance,$grade,$major){//获取到当前域名$domain request()->domain();//实例化$pdf new TCPDF(P, mm, A4, true, UTF-8, false);// 设置文档信息$pdf->SetCr…...
wpf devexpress实现输入验证使用验证规则
打开此项目 目标是一个registration form行为像google registration form。打开Google registration form 研究它的行为。当form是第一次显示,它的“Register”按钮应该启动;编辑器没有提示任何输入错误。输入First Name编辑器字段,清理输入…...
Vue表单的整体处理
在前端的处理中,表单的处理永远是占高比例的。在BOMDOMjs的时候是这样,在Vue的时候也是这样。Vue的表单处理做了特别的优化,如值绑定、数据验证、错误提示、修饰符等。 表单组件的示例: <script setup lang"ts">…...
探索实人认证API:保障在线交互安全的关键一步
前言 在数字化时代,随着人们生活的日益数字化,各种在线服务的普及,安全性成为用户体验的至关重要的一环。特别是在金融、电商、社交等领域,确保用户身份的真实性显得尤为重要。而实人认证API作为一种先进的身份验证技术ÿ…...
XDR 网络安全:技术和最佳实践
扩展检测和响应(XDR)是一种安全方法,它将多种保护工具集成到一个统一的集成解决方案中。它为组织提供了跨网络、端点、云工作负载和用户的广泛可见性,从而实现更快的威胁检测和响应。 XDR的目标是提高威胁检测的速度和准确性&…...
【如何学习Python自动化测试】—— 警告框处理
7 、 警告框处理 在 web 中,除了上面提到的元素和操作之外,还有就是页面的提示框的处理了,页面的警告框通常分为这几类 js:alert 、 confirm 以及 prompt,这些警告框,我们都可以通过 switch_to_alert()来处…...
Jenkins Ansible 参数构建
首先在Jenkins中创建自由项目 在web端配置完成后在另一台机子上下载nginx 在gitlab端创建项目并创建文件配置代码 在有Jenkins的机器上下载Ansible [rootslave1 ~]# yum -y install epel-release [rootslave1 ~]# yum -y install ansible再进入下载nginx机器中克隆gitlab项目…...
第十五届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组(详细分析解答)
目录 1.动态的Tab栏 1.1 题目要求 1.2 题目分析 1.3 源代码 2.地球环游 2.1 题目要求 2.2 题目分析 2.3 源代码 3.迷惑的this 3.1 题目要求 3.2 题目分析 3.3 源代码 4.魔法失灵了 4.1 题目要求 4.2 题目分析 4.3 源代码 5.燃烧你的卡路里 5.1 题目要求 5.2…...
2023亚太杯数学建模B题思路+模型+代码+论文
2023亚太地区数学建模A题思路:开赛后第一时间更新,获取见文末 名片 2023亚太地区数学建模B题思路:开赛后第一时间更新,获取见文末 名片 2023亚太地区数学建模C题思路:开赛后第一时间更新,获取见文末 名片…...
GitHub 报告发布:TypeScript 取代 Java 成为第三受欢迎语言
GitHub发布的2023年度Octoverse开源状态报告发布,研究围绕AI、云和Git的开源活动如何改变开发人员体验,以及在开发者和企业中产生的影响。报告发现了三大趋势: 1、生成式AI的广泛应用: 开发人员大量使用生成式AI进行构建。越来越…...
配置hikari数据库连接池时多数据源不生效
1.原始配置,改造前: spring:# 配置数据源信息datasource:dynamic:#设置默认的数据源或者数据源组,默认值即为masterprimary: masterstrict: truedatasource:#这里采用了配置文件取值的方式,可以直接替换为数据库连接master:url: jdbc:postgr…...
matlab 最小二乘拟合平面并与XOY平面对齐
目录 一、算法原理二、代码实现1、绕原点对齐2、绕质心对齐三、结果展示1、绕原点对齐2、绕质心对齐四、测试数据本文由CSDN点云侠原创,原文链接。爬虫网站自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 首先,使用最小二乘拟合平面…...
jQuery【回到顶部、Swiper轮播图、立即执行函数、链式调用、参数重载、jQuery扩展】(六)-全面详解(学习总结---从入门到深化)
目录 回到顶部 Swiper轮播图 jQuery源码_立即执行函数 jQuery源码_链式调用 jQuery源码_参数重载 jQuery扩展 回到顶部 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compati…...
XUnity自动翻译器终极指南:5分钟让任何Unity游戏变中文版
XUnity自动翻译器终极指南:5分钟让任何Unity游戏变中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏而烦恼吗?XUnity自动翻译器是你的终极解决方案!…...
【项目实训(个人)】7:完成AI相关的环境配置与AI角色对话功能
阅见项目AI角色对话功能实战:流式输出与上下文记忆的全栈实现 在本阶段的开发中,我们小组大家各自先尝试基本的api调用,理解基本的前后端逻辑,其中在这里,我实现了一个简单的AI角色对话功能的demo,构建了一…...
保姆级教程:在Vue3+TS+Vite项目中,用webrtc-streamer搞定RTSP监控视频实时播放
Vue3TSVite全栈实战:WebRTC-streamer实现RTSP监控流低延迟播放方案 监控视频的实时播放一直是Web开发中的难点,尤其是对接传统RTSP协议摄像头时。本文将带你从零构建一个基于Vue3、TypeScript和Vite的技术方案,通过WebRTC-streamer实现浏览器…...
Arm SVE架构与向量化优化实战指南
1. SVE架构与向量化优化基础1.1 SVE技术演进与核心特性Arm的可扩展向量扩展(Scalable Vector Extension, SVE)代表了Armv8.2-A架构引入的向量计算重大革新。与传统的NEON(Advanced SIMD)相比,SVE通过三项关键设计解决了现代计算负载的痛点:硬件无关的向量…...
Arm AutoFDO优化与ADB连接实战指南
1. Arm Lumex软件AutoFDO优化与ADB连接实战指南在移动应用和嵌入式系统开发中,性能优化始终是开发者面临的核心挑战。Arm Lumex软件提供的AutoFDO(自动反馈导向优化)技术,通过分析程序实际运行时的行为特征来指导编译器进行针对性…...
Yew Web Workers终极指南:如何实现多线程计算优化
Yew Web Workers终极指南:如何实现多线程计算优化 【免费下载链接】yew Rust / Wasm framework for creating reliable and efficient web applications 项目地址: https://gitcode.com/gh_mirrors/ye/yew Yew是一个基于Rust和WebAssembly的现代Web框架&…...
Audiveris编辑器使用技巧:5种方法快速修正识别错误
Audiveris编辑器使用技巧:5种方法快速修正识别错误 【免费下载链接】audiveris Latest generation of Audiveris OMR engine 项目地址: https://gitcode.com/gh_mirrors/au/audiveris Audiveris作为一款强大的光学音乐识别(OMR)引擎&a…...
AI 编程神器:MonkeyCode 使用心得 —— 重塑开发效率,
我使用 MonkeyCode 的心得分享 大家好!作为一名热爱编程刚入门不久的新手,我想分享一下我最近使用 MonkeyCode 的心得。MonkeyCode 是一款基于人工智能的编程辅助工具,它彻底改变了我的编码体验。从安装到日常使用,整个过程流畅无…...
华为HDC大会2024张平安总keynote盘古多模态生成大模型:STCG技术如何重塑自动驾驶数据引擎
从"娱乐生成"到"产业生成":盘古的差异化路径 当业界多模态大模型还在追逐一镜到底的娱乐视频生成时,盘古5.0选择了一条截然不同的技术路线——聚焦行业急需的价值场景。在华为HDC大会上,盘古团队首次系统披露了多模态生…...
个人如何用 DeepSeek‑V4 高效做内容创作(实操极简版)
DeepSeek‑V4 优势:百万字超长记忆、逻辑稳、文风可控、长内容不跑偏、批量产出强,完全适配文案、图文、短视频、小说、古风、公众号全品类创作。一、三种使用入口(个人免费即用)DeepSeek 官网 Chat直接网页 / APP 打开࿰…...
