Git回顾

参考视频:【GeekHour】一小时Git教程

一句话定义:Git是一个免费开源的分布式版本控制系统。

版本控制系统可以分为两种,1.集中式(SVN,CVS);2.分布式(git)

git的工作区域和文件状态

git的工作区域
在这里插入图片描述
git中文件也存在下面几种状态在这里插入图片描述

添加和提交文件

git reset

默认是mixed。这三种模式实际上就是回退程度的区别。下图可以解释区别,其中工作区是本地实际的文件,暂存区是git add后的区域。
在这里插入图片描述

当然,如果误操作了git reset也没关系,可以使用git reflog查看修改记录,然后再使用git reset回退。

在这里插入图片描述

git loggit reflog的区别

项目git loggit reflog
作用查看分支上的提交历史查看 HEAD 或分支引用的变动历史
内容显示当前分支的提交(commit)记录显示 HEAD 或分支引用的所有变动(如 reset、rebase、commit)
记录范围只包含分支上可达的 commit包括被丢弃、回滚、rebase 覆盖的 commit
保留时间只要 commit 没有被垃圾回收就会一直在默认保留 90 天(可配置),之后会被 Git 回收
常用场景查看项目历史、提交说明误操作恢复(如找回 reset 丢失的提交)
可见性用户面向,逻辑提交历史Git 内部记录,供恢复使用
示例命令git log --onelinegit reflog

git diff

比较工作区和暂存区之间的差异
在这里插入图片描述
进行git add后,上面就无区别了。

比较工作区和版本库之间的差异
git diff HEAD(对比当前工作区的文件和最新一次提交(HEAD)之间的差异)
在这里插入图片描述

比较暂存区和版本库之间的差异 : git diff --cached

比较两个不同版本库之间的差异
在这里插入图片描述

HEAD~n表示前n个版本
在这里插入图片描述

在这里插入图片描述

git rm删除文件

如果不用git rm,那正常的操作流程是,先rm删掉文件,然后git add同步到暂存区。
上面流程可以用git rm,即同时删除工作区和暂存区的文件。在这里插入图片描述

gitignore

匹配规则例子:

在这里插入图片描述
在这里插入图片描述

SSH配置和远程仓库

SSH与HTTPS之辨析与实践
在这里插入图片描述
在这里插入图片描述

关联本地仓库和远程仓库

git push -u 中的 -u --set-upstream的简写,作用是:

把当前分支和远程分支绑定,以后你只需输入 git push git pull就行,不用每次指定远程和分支名。

当然,下面中远程仓库需要新建,然后就可以通过下面步骤把本地代码同步到远程仓库了。
在这里插入图片描述
比如:我想要把hhh分支上的推送到远程的main,git push origin hhh:main

分支以及合并冲突

分支合并:mergerebase

merge
你在哪个分支执行 git merge,就是把“别的分支”合并到“你当前所在的分支”上。
比如下面,在main分支上使用merge dev,就把dev合并到当前的main上,此时会有产生一个新的提交(如下面的“merge")。
在这里插入图片描述
rebase
把当前分支的提交“挪到”目标分支的最末尾,重新“重放”一遍,形成一条线性的提交历史。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

git pull 和 git fetch

git fetch 把远程仓库的更新拉到本地,但不影响你当前的代码(不合并、不修改工作区)。

命令拉代码自动合并修改工作区
git fetch❌(不影响当前分支)
git pull✅(直接合并)

git fetch 安全、可控,适合先看看有没有冲突再决定怎么合并。

git pull 是 fetch + merge 的快捷方式,一键拉并合并。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python打卡day20

特征降维------特征组合(以SVD为例) 知识点回顾: 奇异值的应用: 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高&#…

GuPPy-v1.2.0安装与使用-生信工具52

GuPPy:Python中用于光纤光度数据分析的免费开源工具 01 背景 Basecalling 是将原始测序信号转换为碱基序列的过程,通俗地说,就是“把碱基识别出来”。这一过程在不同代测序技术中各不相同: 一代测序是通过解析峰图实现&#xff1…

47. 全排列 II

题目 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]] 示例 2: 输入:nums [1,2,3] 输出:[[1,2,3…

ERP系统操作流程,如何快速搭建流程体系

ERP流程图,如何搭建和建立,ERP系统操作流程,ERP系统操作流程图,采购流程,销售流程,仓库流程,MRP流程,PMC流程,财务流程,应收流程,应付流程&#x…

class path resource [] cannot be resolved to absolute file path

问题情景 java应用程序在IDE运行正常,打成jar包后执行却发生异常: java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…

19、HashTable(哈希)、位图的实现和布隆过滤器的介绍

一、了解哈希【散列表】 1、哈希的结构 在STL中,HashTable是一个重要的底层数据结构, 无序关联容器包括unordered_set, unordered_map内部都是基于哈希表实现 哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。哈希函数:负责将…

基于 Flask的深度学习模型部署服务端详解

基于 Flask 的深度学习模型部署服务端详解 在深度学习领域,训练出一个高精度的模型只是第一步,将其部署到生产环境中,为实际业务提供服务才是最终目标。本文将详细解析一个基于 Flask 和 PyTorch 的深度学习模型部署服务端代码,帮…

Vue3 + Node.js 实现客服实时聊天系统(WebSocket + Socket.IO 详解)

Node.js 实现客服实时聊天系统(WebSocket Socket.IO 详解) 一、为什么选择 WebSocket? 想象一下淘宝客服的聊天窗口:你发消息,客服立刻就能看到并回复。这种即时通讯效果是如何实现的呢?我们使用 Vue3 作…

MySQL数据库与表结构操作指南

前言:本文系统梳理MySQL核心操作语句。内容覆盖建库建表、结构调整、数据迁移全流程(包含创建/修改/删除/备份场景)。希望它们能帮你快速解决问题。 库结构操作 一、库的创建 一个库的简单创建: create database 库名; 注意&am…

【WEB3】区块链、隐私计算、AI和Web3.0——数据民主化(1)

区块链、隐私计算、AI,是未来Web3.0至关重要的三项技术。 1.数据民主化问题 数据在整个生命周期(生产、传输、处理、存储)内的隐私安全,则是Web3.0在初始阶段首要解决的问题。 数据民主化旨在打破数据垄断,让个体能…

C语言—指针2

1. const 修饰变量 1.1 const修饰变量 变量被const修饰时,变量此时为常变量,本质为常量,语法上不可被修改,但是如果此时需要修改变量值,可以通过指针的方式修改。 虽然此时通过指针的方式确实修改了变量的值&#xff…

高级架构软考之网络OSI网络模型

高级架构软考之网络: 1.OSI网络模型: a.物理层: a.物理传输介质物理连接,负责数据传输,并监控数据 b.传输单位:bit c.协议: d:对应设备:中继器、集线器 b.数据链路层: a.…

el-table计算表头列宽,不换行显示

1、在utils.js中封装renderHeader方法 2、在el-table-column中引入: 3、页面展示:

MySQL OCP和Oracle OCP怎么选?

近期oracle 为庆祝 MySQL 数据库发布 30 周年,Oracle 官方推出限时福利:2025 年 4 月 20 日至 7 月 31 日期间,所有人均可免费报考 MySQL OCP(Oracle Certified Professional)认证考试(具体可查看MySQL OCP…

2025最新免费视频号下载工具!支持Win/Mac,一键解析原画质+封面

软件介绍 适用于Windows 2025 最新5月蝴蝶视频号下载工具,免费使用,无广告且免费,支持对原视频和封面进行解析下载,亲测可用,现在很多工具都失效了,难得的几款下载视频号工具,大家且用且珍…

Python学习之路(八)-多线程和多进程浅析

在 Python 中,多线程(Multithreading) 和 多进程(Multiprocessing) 是实现并发编程的两种主要方式。它们各有优劣,适用于不同的场景。 一、基本概念 特性多线程(threading)多进程(multiprocessing)并发模型线程共享内存空间每个进程拥有独立内存空间GIL(全局解释器锁…

Spark缓存--persist方法

1. 功能本质 persist:这是一个通用的持久化方法,能够指定多种不同的存储级别。存储级别决定了数据的存储位置(如内存、磁盘)以及存储形式(如是否序列化)。 2. 存储级别指定 persist:可以通过传入…

裸辞8年前端的面试笔记——JavaScript篇(一)

裸辞后的第二个月开始准备找工作,今天是第三天目前还没有面试,现在的行情是一言难尽,都在疯狂的压价。 下边是今天复习的个人笔记 一、事件循环 JavaScript 的事件循环(Event Loop)是其实现异步编程的关键机制。 从…

什么是死信队列?死信队列是如何导致的?

死信交换机(Dead Letter Exchange,DLX) 定义:死信交换机是一种特殊的交换机,专门用于**接收从其他队列中因特定原因变成死信的消息**。它的本质还是交换机,遵循RabbitMQ中交换机的基本工作原理&#xff0c…

9. 从《蜀道难》学CSS基础:三种选择器的实战解析

引言:当古诗遇上现代网页设计 今天我们通过李白的经典诗作《蜀道难》来学习CSS的三种核心选择器。这种古今结合的学习方式,既能感受中华诗词的魅力,又能掌握实用的网页设计技能。让我们开始这场穿越时空的技术之旅吧! 一、HTML骨架…