【Git】基础使用

Git基础使用

  • 基础配置
  • 工作区-暂存区-版本库
  • 添加文件
  • 修改文件
  • 版本回退
  • 撤销修改
  • 删除文件
  • 分支管理
  • 强制删除分支

基础配置

初始化仓库:

git init
# 此时就会生成一个 .git 的文件夹,切勿修改或删除文件夹里的内容

配置仓库——名字:

git config user.name "你的名字"

配置仓库——邮箱:

git config user.email "你的邮箱"

查看仓库配置:

git config -l

删除仓库配置——名字(邮箱同理):

git config --unset user.name

当前机器下所有仓库配置:

git config --global user.name "你的名字"

重置 name 就需要使用:git config --global --unset user.name

工作区-暂存区-版本库

工作区:工作区就是本地电脑存放文件或代码的目录。
暂存区:一般存放在 .git 目录下的 index 文件中(.git/index),暂存区也叫索引。
版本库:也叫仓库,就是工作区中的一个隐藏目录 .git,版本库里的所有文件都可以被 Git 所管理。
工作区中的文件 add 到暂存区后,暂存区再 commit 到仓库中,此时才会被写到版本库中。
通过新建或粘贴进目录的文件,并不能叫做向仓库中新增文件,而只是在工作区新增了文件。需要使用 git add 和 git commit 命令才能将文件添加到仓库中进行管理。

添加文件

提交ReadMe
在这里插入图片描述

git add ReadMe
git commit -m "测试Git提交"
# -m 后面跟上本次提交的细节等信息,等后面查看时就可以快速得知本次提交时做了些什么修改。
git add .
# . 表示将当前目录下所有改动都放到暂存区中

提交后就会如下图所示:1文件提交,1行插入。
在这里插入图片描述

#上面是添加一个文件,可以一次性添加多个文件
git add text1 text2 text3
# 然后再使用
git commit -m "添加三个文件"

通过 git log 就可以查看提交的信息:
在这里插入图片描述

也可以使用 git log --pretty=oneline 输出简短信息

在这里插入图片描述

修改文件

当我们在文件里修改了内容后,使用 git status 命令就可以查看上一次提交后到现在是否对文件的修改:
在这里插入图片描述
上图可以看到文件 ReadMe 被修改。
使用命令 git diff [file] 命令用来显示暂存区和工作区文件的差异:
在这里插入图片描述

版本回退

在文件 ReadMe 中,第一次内容为 hello git,然后提交了,此时为第一个版本。二次编辑新增了 hello world,提交后为第二个版本。
使用命令 git reset 可用于版本回退,可以指定退回某一次提交的版本。此命令回退本质是将版本库中的内容进行回退,工作区或暂存区是否回退由参数决定:

git reset 格式:git reset [--soft | --mixed | --hard] [HEAD]

其中(表格中的参数前面为两个-):

工作区文件内容暂存区文件内容版本库文件内容git reset 参数
hello git
hello world
hello git
hello world
hello git
hello world
hello git
hello world
hello git
hello world
hello git–soft
只有版本库会回退
hello git
hello world
hello githello git–mixed(默认选项)
版本库和暂存区会回退
hello githello githello git–hard
都回退

参数 --hard要慎用,因为当在工作区文件中编写代码后,若没有保存提交,当使用参数 --hard回退后,那编写的代码就白写了。
在这里插入图片描述
若又不想回退了,还是使用同样的命令回退,只需修改版本号:
在这里插入图片描述
当命令行内容被清除后,使用 git log 查看只有一条记录时,可以使用 git reflog 命令来查看其余提交记录。

撤销修改

在工作区写了很多内容,bug 越来越多,想恢复到上一个版本重新进行开发。

工作区文件内容暂存区文件内容版本库文件内容解决方式
hello git
新内容
未add场景:此时只有工作区需要回退
1.手动撤销—不推荐、易出错
2. git checkout – filename(两个-)
hello git
新内容
hello git
新内容
未commit场景:工作区和暂存区都需回退
git reset --hard HEAD
HEAD为当前版本,也就是回退到最近一次提交时。
HEAD^为上一个版本、HEAD^^为上上个版本,以此类推
hello git
新内容
hello git
新内容
hello git
新内容
场景:都需回退、版本库中的为最新版本
不包含新内容的则为上一版本,回到上一版本即可
git reset --hard HEAD^

删除文件

删除文件也是修改操作

删除工作区和暂存区:git rm file5
然后commit: git commit -m "delete file5"

分支管理

查看当前本地仓库有哪些分支:

git branch

创建 dev分支:

git branch dev

切换到 dev分支:

git checkout dev
# 可以使用下面的命令来同时完成创建并切换分支:
git checkout -b dev1

切换到 dev分支后,进行代码编写、add、commit 后,dev 分支上就存储了新的代码,但在主分支上并没有新代码,若要让主分支也有新代码,可以进行分支合并

#切换到 master 上进行合并
git checkout master
#合并分支
git merge
#合并后 master 就能看到 dev 分⽀提交的内容了

删除分支:

#删除 dev分支
git branch -d dev
删除分支需要在其他分支上,不能在 dev分支上删除 dev分支

合并冲突: 假设在 dev分支上对文件修改了内容(将最后一行内容修改为 dev),然后又在 master分支上对同一个文件修改了内容(将最后一行内容修改为 master),此时若合并分支就会冲突,git 不知道将文件最后一行内容保存为 dev 还是 master,此时就需要手动调整冲突代码。

在这里插入图片描述

处理冲突:

在这里插入图片描述

使用命令 git log --graph --pretty=oneline --abbrev-commit 可以查看合并情况:
在这里插入图片描述

分支的作用:

在这里插入图片描述

强制删除分支

在分支还没有合并前,使用 git branch -d 分支名,是无法删除分支的(因为没有合并,受Git保护),若确实需要删除(不需要开发此功能了),则需切换到其他分支,使用 git branch -D 分支名 来删除。

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

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

相关文章

系统与网络安全------网络应用基础(2)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 交换机 认识交换机 交换机,Switch 用户将多台计算机/交换机连接在一起,组建网络 交换机负责为其中任意两台计算机提供独享线路进行通信 非网管型交换机 即插即用交换机 即插即用&…

【xiaozhi赎回之路-2:语音可以自己配置就是用GPT本地API】

固件作用 打通了网络和硬件的沟通 修改固件实现【改变连接到小智服务器的】 回答逻辑LLM自定义 自定义了Coze(比较高级,自定义程度比较高,包括知识库,虚拟脚色-恋人-雅思老师-娃娃玩具{可能需要使用显卡对开源模型进行微调-产…

蓝桥杯——嵌入式学习日记

因为lED和LCD共用PC8~PC15引脚,要通过锁存(LE)和(GPIOC->ODR)来避免LED和LCD引脚冲突 修改点: main.c中,GPIO初始化引脚后,LE(PD2引脚低电平锁存,退出透明模式&…

Liunx系统Microsoft SQL Server数据库还原

1.确认Linux系统已安装SQLServer服务并启动 2.在Windows中使用SSMS连接原数据库与Linux远程数据库服务 3.备份 成功备份如下 4.上传bak文件到远程Linux服务器 登陆Linux服务并创建数据库文件夹 退出Linux服务

【学习资源】多元时序分析问题和时序图模型

工业数据分析领域中,多元时序数据分析是一个广泛的问题。今天和大家简单介绍多元时序预测、聚类、分类、时序图模型和相应的深度学习库。 图片来源:https://www.researchgate.net/publication/349207209_Multivariate_Time-Series_Anomaly_Detection_via…

QT二 QT使用generate form 生成常用UI,各种UI控件

一 。没有使用general form 和 使用 general form 后,file层面和代码层面的不同比较 file层面的不同 代码层面的不同, 在 使用了general form之后,在主界面的构造方法中,使用ui->setupUi(this),就完成了所有UI的处理。 而之…

Haption力反馈遥操作机器人:6自由度高精度技术,定义远程操作新标准

Haption在力反馈遥操作机器人技术领域展现了强大的创新能力。其核心技术——力反馈技术,通过提供高度逼真的触觉反馈,显著提升了远程操作的精确性与用户体验。这种技术在工业、医疗等高要求场景中表现出色,同时也为科研和教育领域提供了有力支…

魔塔社区的torch_empty错误问题的解决办法

前言 我在运行魔塔社区(modelscope)的ZhipuAI/chatglm3-6b模型(智谱)的实例程序的时候,碰到了一个奇怪的错误(torch.empty),我尝试解决了一下。 (当前采用的Python版本…

全面了解 Cookies、Session 和 Token

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

51c自动驾驶~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/11968755 #大模型/Sora/世界模型之间是什么关系 1 什么是大模型 人工智能大模型(Artificial Intelligence Large Model,简称AI大模型)是指具有庞大的参数规模和复杂程度的机器学习模…

分布式环境下的重复请求防护:非Redis锁替代方案全解析

目录 引言 方案一:前端防护策略 方案二:后端协同控制 方案三:流量控制与过滤 滑动窗口限流 布隆过滤器 方案四:基于框架的实践方案 多层防护策略与最佳实践 总结 引言 在Web应用开发中,防止用户重复点…

4.1 C#获取目录的3个方法的区别

C#中常用有如下3个获取目录的方式如下 1.Directory.GetCurrentDirectory():获取当前工作目录,工作目录可能被用户或其他代码修改。尽量少用。(似乎只要在运行中使用另存为或者打开某个文件夹,当前工作目录就修改) 2.Application…

【漏洞复现】Next.js中间件权限绕过漏洞 CVE-2025-29927

什么是Next.js? Next.js 是由 Vercel 开发的基于 React 的现代 Web 应用框架,具备前后端一体的开发能力,广泛用于开发 Server-side Rendering (SSR) 和静态站点生成(SSG)项目。Next.js 支持传统的 Node.js 模式和基于边…

MCU-芯片时钟与总线和定时器关系,举例QSPI

时钟源: 时钟源为系统时钟提供原始频率信号,系统时钟则通过(分频、倍频、选择器)成为整个芯片的“主时钟”,驱动 CPU 内核、总线(AHB、APB)及外设的运行。 内部时钟源: HSI&#x…

使用 ByteDance 的 UI-TARS Desktop 探索 AI 驱动的 GUI 自动化新前沿

文章目录 UI-TARS Desktop 是什么?技术亮点应用场景如何快速上手?与其他技术的对比未来展望结语 随着人工智能技术的快速发展,AI 正在从单纯的文本生成和图像识别迈向更复杂的交互场景。ByteDance 近期推出的 UI-TARS Desktop(基于…

DockerFile制作镜像(Dockerfile Creates an Image)

DockerFile制作镜像 hub.docker.com 搜索到的 Redis官方镜像,提示我们可以创建自己的 DockerFile 来添加 redis.conf 文件: 于是,我准备进行首次 DockerFile 的制作尝试。 一、准备工作 1.1 下载 redis.conf 我的方案是从 GitHub 上下载 …

C++List模拟实现|细节|难点|易错点|全面解析|类型转换|

目录 1.模拟代码全部 2.四大块代码理解 1.最底层&#xff1a;ListNode部分 2.第二层&#xff1a;ListIterator部分 3.第三层&#xff1a;ReserveListIterator部分 4最终层&#xff1a;List 1.模拟代码全部 using namespace std; template<class T> struct ListNode …

如何让自动驾驶汽车“看清”世界?坐标映射与数据融合概述

在自动驾驶领域,多传感器融合技术是实现车辆环境感知和决策控制的关键。其中,坐标系映射和对应是多传感器融合的重要环节,它涉及到不同传感器数据在统一坐标系下的转换和匹配,以实现对车辆周围环境的准确感知。本文将介绍多传感器融合中坐标系映射和对应的数学基础和实际应…

鸿蒙开发之背景图片的使用

在鸿蒙开发中&#xff0c;设置背景图片是提升应用界面视觉效果的重要一环。以下是关于鸿蒙开发中背景图片使用的详细方法&#xff1a; 一、通过XML布局文件设置背景图片 1.使用Image组件设置背景图片 在XML布局文件中&#xff0c;可以使用Image组件来设置背景图片。通过ohos…

如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同?

大白话如何在 HTML 中创建一个有序列表和无序列表&#xff0c;它们的语义有何不同&#xff1f; 1. HTML 中有序列表和无序列表的基本概念 在 HTML 里&#xff0c;列表是一种用来组织信息的方式。有序列表就是带有编号的列表&#xff0c;它可以让内容按照一定的顺序呈现&#…