【2025年超详细】Git 系列笔记-4 git版本号及git相关指令运用。

系列笔记

【2025年超详细】Git 系列笔记-1 Git简述、Windows下git安装、Linux下git安装_displaying 2e+144 commits. adjust this setting in -CSDN博客

【2025年超详细】Git 系列笔记-2 github连接超时问题解决_2025访问github-CSDN博客

【2025年超详细】Git 系列笔记-3 Git客户端-Github desktop使用及IDEA集成Github、Gitee-CSDN博客


内容简述

        本小节分两个章节,分别详细介绍了git版本号以及git指令两个重要知识点。详细的列出了各种相关指令及操作以及常用的远程仓库例如github的相关操作、生成SSH公钥并添加到github的方法等内容。

        文字清晰、步骤明确,适合新手学习git。


第五章 版本号

、版本号概念

        Git采用40个16进制数字(SHA-1加密算法)组成版本号,这样生成的SHA-1哈希值作为唯一标识符来表示仓库中的每一次提交、文件(blob)、目录树(tree)和标签(tag)的状态。

        因为版本号每次提交时生成,又名提交码。保存于 .git/objects 文件夹中,根据版本号就能找到文件。40个数字的前2位标识文件夹,后38位标识文件名。

        可以使用 git log 查看提交历史,其中包含完整的SHA-1。或者使用 git log --online 来显示简短的提交哈希值和提交信息。

二、版本号-文件操作

2.1.查看定位到的文件内容

        进入到 .git/objects 文件夹中,可以根据版本号找到文件。

        若此时想要使用记事本等文本编辑器查看内容,会发现内容全是乱码,此时要使用git自带的工具进行查看。

        回到仓库的根路径,右键选择 git bash here,在终端输入  git cat-file -p 版本号 其中-p表示友好的访问文件内容。

        发现内容并非我们想要看到的内容,因为git在文件创建修改的过程中,创建了多个版本号。此时根据刚才生成的tree版本号的直接关联,继续深入即可看到我们想要看到的文件内容。

2.2.不同状态文件会有不同的版本号

        1、添加文件

        当前提交的新增文件,关联着新旧两个版本的文件内容,这就是新增时的版本变化。

        2、修改文件

        修改文件同样会与最开始的版本号内容相关联,也新增了一个版本号对应着修改后的文件内容。

        3、删除文件

        删除后只关联一个版本号,对应着文件状态,但文件状态不关联于文件内容了。但本质上并未真正删除这个文件,其实是一个历史版本,依旧存在于仓库之中。

三、版本号-分支操作

3.1.分支操作对版本号的影响

        最新的版本号:.git文件夹中有一个名叫HEAD的文件,里面存储的内容为一个文件路径ref: refs/heads/main,此时指向的文件内容就是最新的版本号。

        此时在github desktop中创建一个新的分支,在heads文件夹中也能找到新创建的分支。

3.2.分支操作的版本号变化

        不同的分支指向不同的版本,互相就不会有太大的影响

3.3.分支切换后变化

        切换分支之后,git会将对应版本的文件提取到仓库中。


第六章 Git指令

一、Git常用指令介绍

二、仓库操作指令

2.1.查看git版本

        输入以下指令,查看git版本。

git -v

2.2.创建仓库

        在终端界面输入以下指令,完成本地仓库的初始化。此时ref、objects等文件夹下都为空,因为此时只完成初始化,当前没有提交操作,而使用github desktop等git工具会自动进行一个初始化的提交,生成ref等文件夹。

git init 仓库名

2.3.clone项目

        在终端界面输入以下指令即可从远程仓库clone项目。

git clone 克隆地址
2.3.1.github例子

        以github为例,进入感兴趣的项目页面,找到图片中位置的绿色Code下拉列表,点击下拉列表,即会出现clone所需要的URL,

        选择你的克隆方式,HTTPs URL 或者 SSH URL,选择对应的选项,然后复制地址,回到终端,使用指令克隆即可。

(注意)Linux推荐使用SSH方式,否则将本地仓库推送到远程仓库时可能会一直出现提示输入github账户密码,但是无法推送的情况。

2.3.2.gitee例子

        gitee克隆地址如图所示,选择克隆或下载,复制对应URL到指令中即可完成clone。

三、文件操作指令

3.1.git status查看状态

        通过以下指令可以查看当前git状态。

git status

3.2.git add添加到暂存区

        当有文件新增,但是与仓库未追踪时,会处于untracked(未跟踪)状态。

        需要通过  git add 指令添加到暂存区,之后进行比对操作。通过 git add *.txt ,可以将所有类型为txt的文件添加到暂存区。

3.3.git rm从暂存区移动回工作区

        若想将文件从暂存区放回工作区域可以使用RM指令,例如git rm –cached test01.txt,此时文件重新回到未跟踪状态。

3.4.commit从暂存区提交到仓库

        通过git commit -m 备注内容,可以将文件提交到本地仓库。

3.5.git log 查看日志

3.6.删除

        删除其实本质上也是一种提交,只是文件引用的时候不在引用这个文件了,所以也使用git add指令,将删除的状态添加到暂存区。

3.7.误删除处理相关指令

3.7.1.恢复删除文件

        使用 git restore 文件名 指令,将错误操作的文件恢复。但若是已经将删除提交了,此时直接恢复就已经恢复不了。

git restore 文件名
3.7.2.重置版本

        可此时可以考虑使用 git reset –hard 版本号 指令,将版本重置到开始的提交。但是会将开发过程中的提交也重置,这种操作并不好。

git reset –hard 版本号 
3.7.2.撤销操作

        通过 git revert 版本号 指令可以用于撤销一次或多次操作,并记录新的提交将这些撤销的操作记录下来。相当于返回上一步的感觉,等同于将删除前的版本进行了一次新的提交,所以不会影响过程中的提交记录。

git revert 版本号

四、分支操作指令

4.1.创建新分支

        使用以下指令,可以创建一个新分支。

git branch 分支名

(注意)需要注意的是,在进行其他分支的创建之前,需要有提交操作,将默认分支提交打到本地仓库,有了默认分支之后才可以进行其他分支的创建。

4.2.查看分支

        使用以下指令,可以查看当前有的分支。

git branch -v

4.3.切换分支

        使用以下指令,可以切换分支到你希望进行操作的分支。当前所处的分支会被*标记

git checkout 分支名

4.4.创建并切换分支

        使用以下指令,可以直接创建并切换到新分支。

git checkout -b 分支名

4.5.删除分支

        使用以下指令,可以删除分支。

git branch -d 分支名

4.5.合并分支

       使用以下指令,可以将分支名所代表的分支合并到主分支。合并分支时,需要将当前分支切换为主分支。

git merge 分支名

        当出现 MERGING 提示的时候,证明合并过程中出现了问题。通过人工判断合并出错的内容,去除掉冲突内容,再次提交即可。

五、标签相关指令

5.1.创建标签

        使用 git tag 标签名(需使用英文) 版本号 指令,可以为版本创建标签,此后就可直接使用标签名对应版本。类似于git log 标签1,它显示的内容就是标签1对应的版本日志。

        ps:标签不能重复。

5.2.删除标签

        使用以下指令,即可删除标签。

git tag -d 标签名

六、远程仓库操作指令

6.1.关联远程仓库

        使用以下指令,为本地仓库配置URL。        

git remote add 英文名称 URL

        远程仓库中自带配置文件,在 .git config文件中有一段数据为[remote “origin”],此处会存有远程仓库的url与fetch。在使用的过程中,可以使用“origin”这个名称代替我们的URL。

        实际开发中,有些项目不提供https格式的路由,而是SSH等格式,则需要到这个文件中,将URL修改成所需要的地址。

        若为本地创建的仓库,没有URL,则可以通过指令git remote add 英文名称 URL,为其配置url。

        还可以通过git remote rename/remove来修改名称或者删除。

6.2.本地推送到远程仓库-PUSH

6.2.1.推送到远程仓库
ssh keygen -t ras C 地址

        在本地仓库中add后commit提交到本地仓库,本地仓库提交完成后,就可以使用 git push 地址 的指令,将本地仓库的内容推送到远程仓库。若是已经配置了SSH文件,则直接使用git push指令即可推送到对应的远程仓库。

git push 地址
6.2.2.配置SSH文件

        如果URL的格式为SSH格式,则还需要安全认证并配置一下。

        使用以下指令,可以为仓库配置公钥文件,将公钥文件中的内容,复制到远程仓库的公钥界面,添加到其中即可使用。

ssh keygen -t ras C 地址
6.2.3.公钥文件所处位置

        Windows:c盘--->用户--->.ssh(安全认证文件夹)--->id_ras.pub(文件)

        Linux:根目录/.ssh/id_rsa.pub

cd ~/.ssh
cat id_rsa.pub

        使用文本编辑器将公钥内容复制起来,在远程仓库创建SSH Key。

6.2.4.添加公钥到远程仓库-以github为例

        ①前往github的个人页面,在左上角点击头像,在下拉列表中选择Settings选项,进入设置页面。

        ②在设置页面,找到 SSH and GPG keys 选项,点击进入页面。

        

        ③选择右上角的NEW SSH Key,新建一个SSH key。

        ④为这个公钥取一个标题,将公钥内容粘贴到Key框中,点击Add SSH Key按钮,完成SSH公钥的创建。

6.2.PULL(远程仓库拉取到本地)

6.2.1.pull指令

        使用以下指令,可以将远程仓库拉取到本地。其中origin为远程仓库名称,按需更换。    

git pull origin
6.2.2.pull与clone与fetch区别

git clone:首次下载整个仓库到本地。只在项目开始时执行一次。

git fetch: 安全获取远程的更新信息不改变工作目录、暂存区、当前本地分支内容

git pull:获取远程仓库更新内容并立即合并到本地仓库。改变当前本地分支和工作目录。相当于fetch+merge的组合操作。


总结:

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

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

相关文章

图像特征检测算法SuperPoint和SuperGlue

SuperPoint 背景与概述 :SuperPoint 是一个自监督的全卷积神经网络,用于提取图像中的兴趣点及其描述子。它在 2018 年由 Magic Leap 提出,通过在合成数据集上预训练一个基础检测器 MagicPoint,然后利用同胚适应技术对真实图像数据…

nginx 和 springcloud gateway cors 跨域如何设置

在跨域资源共享(CORS)配置中,Nginx 和 API Gateway(如Spring Cloud Gateway、Kong等)是两种常见的解决方案,它们的配置逻辑和适用场景有所不同。以下是详细对比和配置示例: 一、核心区别 维度NginxAPI Gateway定位反向代理/Web服务器微服务流量入口配置位置基础设施层应…

电路笔记(信号):一阶低通RC滤波器 一阶线性微分方程推导 拉普拉斯域表达(传递函数、频率响应)分析

目录 RC 低通滤波器电路一阶线性微分方程推导拉普拉斯域表达(传递函数)传递函数 H ( s ) H(s) H(s)频率响应(令 s j ω s j\omega sjω)幅频特性:相位特性:Bode 图(线性系统频率响应&#x…

【Git】删除远程分支时,本地分支还能看到

当远程仓库的分支被删除后,本地通过 git branch -a 或 git remote show origin 仍能看到这些分支的引用,是因为本地存储的远程跟踪分支(位于 refs/remotes/origin/)未被同步更新。以下是解决方法: 解决方案&#xff1…

Cubase 通过 MIDIPLUS MIDI 键盘进行走带控制的设置方法

第一步,在官网下载xml配置文件。 https://midiplus.com/upload/202101/29/Xpro & Xpro_mini控制脚本(Cubase).zip 第二步,Cubase中按如图步骤添加映射。 将MIDI键盘连接到电脑后打开Cubase软件,点选菜单“工作室”->“工作室设置”&…

第十八章 Linux之Python定制篇——Python开发平台Ununtu

1. Ubuntu介绍 Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源GUN/Linux操作系统,Ubuntu基于GUN/Linux,支持x86、amd64(即x64)和ppc架构,有全球专业开发团队(Canonical…

推荐轻量级文生视频模型(Text-to-Video)

1. ModelScope T2V by 阿里达摩院(推荐) 模型名:damo/text-to-video-synthesis 输入:一句文字描述(如:"a panda is dancing") 输出:2秒视频(16帧&#xff0c…

流编辑器sed

sed简介 sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下行,这样不断重复&#xf…

商用密码基础知识介绍(上)

一、密码的基础知识 1、密码分类 根据《中华人民共和国密码法》,国家对密码实行分类管理,分为密码分为核心密码、普通密码和商用密码。 (1)核心密码、普通密码 核心密码、普通密码用于保护国家秘密信息,核心密码保护…

PROFINET主站S7-1500通过协议网关集成欧姆龙NJ系列TCP/IP主站

一、项目背景 某大型新能源电池生产企业,致力于提升电池生产的自动化水平和智能化程度。其生产线上,部分关键设备采用了不同的通信协议。在电池生产的前段工序,如原材料搅拌、涂布等环节,使用了西门子S7-1500系列PLC作为ROFINET协…

Vue3 + TypeScript + Element Plus + el-input 输入框列表按回车聚焦到下一行

应用效果:从第一行输入1,按回车,聚焦到第二行输入2,按回车,聚焦到第三行…… 一、通过元素 id,聚焦到下一行的输入框 关键技术点: 1、动态设置元素 id 属性为::id"input-appl…

FramePack 全面测评:革新视频生成体验

在 AI 视频生成领域,FramePack 自问世便备受瞩目,它凭借独特的技术架构,号称能打破传统视频生成对高端硬件的依赖,让普通电脑也能产出高质量视频。此次测评,我们将全方位剖析 FramePack,探究它在实际应用中…

html中的table标签以及相关标签

表格标签可以通过指定的标签完成数据展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格标签</title> </head> <body><table border"2"><!-- tr是表行 r…

springboot+vue3+vue-simple-uploader轻松实现大文件分片上传Minio

最近在写视频课程的上传&#xff0c;需要上传的视频几百MB到几个G不等&#xff0c;普通的上传都限制了文件的大小&#xff0c;况且上传的文件太大的话会超时、异常等。所以这时候需要考虑分片上传了&#xff0c;把需要上传的视频分成多个小块上传到&#xff0c;最后再合并成一个…

AI 重构代码实战:如何用飞算 JavaAI 快速升级遗留系统?

在企业数字化进程中&#xff0c;遗留系统如同陈旧的基础设施&#xff0c;虽承载着重要业务逻辑&#xff0c;但因技术落后、架构复杂&#xff0c;升级维护困难重重。飞算 JavaAI 的出现&#xff0c;为遗留系统的二次开发带来了新的转机&#xff0c;其基于智能分析与关联项目的技…

鸿蒙运动开发实战:打造专属运动视频播放器

##鸿蒙核心技术##运动开发##Media Kit&#xff08;媒体服务&#xff09;# 在当今数字化时代&#xff0c;运动健身已经成为许多人生活的一部分。今天我将在应用中添加视频播放器&#xff0c;帮助用户在运动前、运动后更好地进行热身和拉伸。这篇文章将从代码核心点入手&#xf…

一个包含15个界面高质量的电商APP客户端UI解决方案

一个包含15个界面高质量的电商APP客户端UI解决方案 您可以将其用于电商APP应用项目。包含一系列完整的界面设计元素&#xff0c;包括欢迎页、登录、注册、首页、产品分类、产品详情、尺码选择、购物车、订单、支付&#xff0c;覆盖电商APP的大部分界面。每个部分都精心设计&…

执行 PGPT_PROFILES=ollama make run下面报错,

执行 PGPT_PROFILESollama make run 下面报错&#xff0c; File "/home/powersys/.cache/pypoetry/virtualenvs/private-gpt-ZIwX6JeM-py3.11/lib/python3.11/site-packages/qdrant_client/http/api_client.py", line 108, in send_inner raise ResponseHandling…

【Docker基础】Docker核心概念:命名空间(Namespace)之User详解

目录 引言 1 基础概念回顾 1.1 命名空间概述 1.2 命名空间的类型 2 User命名空间详解 2.1 基本概念 2.2 工作原理 User命名空间的工作流程 User命名空间架构 3 应用场景 4 配置与使用 5 总结 引言 随着容器化技术的广泛应用&#xff0c;Docker已成为现代软件开发、…

DIDCTF-应急响应

前言 最近在学长分享应急响应与电子取证的知识&#xff0c;又恰逢期末周没有课&#xff0c;记录自己在取证道路的成长。 linux-basic-command 下载附件&#xff0c;得到Apache 服务器访问日志文件&#xff0c;根据题目要求找出排名前五的ip&#xff0c;题目提示写脚本&#…