Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
GIT
RSOC-2025
【RSOC25】DAY1 GIT
发布于 2025-08-03 10:19:40 浏览:25
订阅该版
[tocm] ### 1. 简介 Git是当前最先进、最主流的**分布式**版本控制系统,免费、开源!核心能力就是版本控制。任何修改历史都会被记录管理起来,可以恢复到到以前的任意时刻状态。支持跨区域多人协作编辑. Git是当前最先进、最主流的**分布式**版本控制系统,免费、开源!核心能力就是版本控制。再具体一点,就是面向代码文件的版本控制,代码的任何修改历史都会被记录管理起来,意味着可以恢复到到以前的任意时刻状态。支持跨区域多人协作编辑,是团队项目开发的必备基础,所以Git也就成了程序员的必备技能  ### 2. 概念  + **工作区**(Workspace)电脑里能看到的工程目录,新增、修改的文件会提交到暂存区。在这里新增文件、修改文件内容,或删除文件。 + **暂存区**(stage或index) 用于临时存放文件的修改,实际上上它只是一个文件(.git/index),保存待提交的文件列表信息。用git add 命令将工作区的修改保存到暂存区。 + **版本库/仓库**(Repository /rɪˈpɑːzətɔːri/ 仓库)Git的管理仓库,管理版本的数据库,记录文件/目录状态的地方,所有内容的修改记录(版本)都在这里。就是工作区目录下的隐藏文件夹.git,包含暂存区、分支、历史记录等信息。git commit 命令将暂存区的内容正式提交到版本库。 + **头**(HEAD)HEAD类似一个“指针”,指向当前活动 **分支** 的 **最新版本**。默认指向最新的master ### 3. 安装 [参照此链接](https://blog.csdn.net/qq_42547733/article/details/129956784) ### 4. 版本管理(仅讲述本地版本,不包含服务器或云端) #### 4.1 创建版本库。 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。 首先要明确下,所有的版本控制系统,**只能跟踪文本文件的改动**,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但**是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化**,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。 如下我是D盘目录下新建一个testgit工程目录,现需要在这个目录下做版本管理。  通过命令 `git init` 把这个目录变成git可以管理的仓库,如下:  这时候你当前testgit目录下会多一个.git的目录,这个目录是Git来跟踪管理版本的,千万不要改这个目录里面的文件,否则,会破坏git仓库。如下:  下面先看下demo如下演示: 在版本库testgit目录下新建一个记事本文件 readme.txt 内容如下:11111111 1. 使用命令 git add readme.txt添加到暂存区里面去。如果和上面一样,没有任何提示,说明已经添加成功了。  2. 命令 git commit告诉Git,把文件提交到仓库。现在我们已经提交了一个readme.txt文件了  3. 查看状态,可以通过命令git status来查看是否还有文件未提交,如下:  说明没有任何文件未提交,但是我现在继续来改下readme.txt内容,比如我在下面添加一行2222222222内容,继续使用git status来查看下结果,如下:  上面的log告诉我们 readme.txt文件已被修改,但是未被提交的修改 4. 查看修改内容可以使用如下命令:git diff readme.txt 如下:  如上可以看到,readme.txt文件内容从一行11111111改成 二行 添加了一行22222222内容。 知道了对readme.txt文件做了什么修改后,我们可以放心的提交到仓库了,提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)。  #### 4.2 版本回退 如上,我们已经学会了修改文件,现在我继续对readme.txt文件进行修改,再增加一行内容为33333333333333.继续执行命令如下  现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示:  git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为333333.上一次是添加内容222222,第一次默认是 111111.如果嫌上面显示的信息太多的话,我们可以使用命令 `git log –pretty=oneline` 演示如下:  现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,可以使用如下2种命令,第一种是:`git reset --hard HEAD^` 那么如果要回退到上上个版本只需把`HEAD^` 改成 `HEAD^^` 以此类推。 那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:`git reset --hard HEAD~100` 即可。未回退之前的readme.txt内容如下:  如果想回退到上一个版本的命令如下操作:  再来查看下 readme.txt内容如下:通过命令cat readme.txt查看  可以看到,内容已经回退到上一个版本了。我们可以继续使用git log 来查看下历史记录信息,如下:  我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下: `git reset --hard` 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 演示如下:  通过上面的显示我们可以知道,增加内容3333的版本号是 6fcfc89.我们现在可以命令 `git reset --hard 6fcfc89`来恢复了。演示如下:  可以看到 目前已经是最新的版本了。 #### 4.3 Git撤销修改和删除文件操作 ##### 4.3.1 撤销修改 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下:  在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改: 1. 如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。 2. 我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^ 但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?首先在做撤销之前,我们可以先用 git status 查看下当前的状态。如下所示:  可以发现,Git会告诉你,git checkout -- file 可以丢弃工作区的修改,如下命令: `git checkout -- readme.txt`,如下所示:  命令 `git checkout --readme.txt` 意思就是,把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下: 1. readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。 2. 另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态 对于第二种情况,我想我们继续做demo来看下,假如现在我对readme.txt添加一行 内容为6666666666666,我git add 增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。如下所示:  注意:命令`git checkout -- readme.txt` 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。 ##### 4.3.2 删除文件 假如我现在版本库testgit目录添加一个文件b.txt,然后提交。如下:  如上:一般情况下,可以直接在文件目录中把文件删了,或者使用如上rm命令:rm b.txt ,如果我想彻底从版本库中删掉了此文件的话,可以再执行commit命令 提交掉,现在目录是这样的,  只要没有commit之前,如果我想在版本库中恢复此文件如何操作呢? 可以使用如下命令 git checkout -- b.txt,如下所示:  再来看看我们testgit目录,添加了3个文件了。如下所示: 
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Y_study
这家伙很懒,什么也没写!
文章
1
回答
2
被采纳
0
关注TA
发私信
相关文章
1
用GIT GUI的时候每次PUSH都要手动填一遍目标仓库地址?
2
git上面的图片加载不出来,有其他可以看BSP 制作教程的方法吗
3
gitee这几个版本怎么分别
4
packages 的 git失败
5
软件包的镜像地址怎么找呢
6
关于tortoisegit的push操作
7
RTT Studio 内置git 推送不到远程gitee仓库
8
git软件包失败下载失败,找不到CA路径?
9
studio内置的git该如何使用
10
RT-Thread studio的git功能可以直接使用吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
五分钟玩转RT-Thread新社区
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
cubemx
I2C_IIC
UART
WIZnet_W5500
BSP
ESP8266
PWM
ota在线升级
packages_软件包
flash
freemodbus
GD32
潘多拉开发板_Pandora
编译报错
ADC
keil_MDK
flashDB
rt_mq_消息队列_msg_queue
ulog
socket
MicroPython
msh
中断
Debug
SFUD
at_device
SDIO总线
本月问答贡献
Ryan_CW
2
个答案
3
次被采纳
D1sguIse_
6
个答案
2
次被采纳
用户名由3_15位
6
个答案
1
次被采纳
三世执戟
4
个答案
1
次被采纳
xiaorui
2
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部