【嵌入式】git工具基础命令学习笔记 | 嵌入式Linux

文章目录

  • 前言
  • 一、git基础指令
  • 二、git分支管理
    • 2.1、一些基础命令
    • 2.2、时间回溯
    • 2.3、新建分支,删除分支,重命名分支


前言

参考:飞凌嵌入式ElfBoard ELF-1 软件学习手册
chatGPT

一、git基础指令

首先我们新建一个名叫git的文件夹,在里面创建一个main.c,后续就以这个C文件为例子进行git管理:

在这里插入图片描述
首先检查ubuntu虚拟机上的git版本是不是最新的:

sudo apt-get install git

很好,已经是最新的了:
在这里插入图片描述
启动命令:

git init

git init 是一个Git命令,用于在当前目录中创建一个新的Git仓库。这个命令会在当前目录下生成一个隐藏文件夹.git,用于存储Git仓库的配置信息和版本历史等内容。执行这个命令后,你就可以开始使用Git来进行版本控制了。
我们使用ls- a 就能看到.git的隐藏文件:

ls -a

在这里插入图片描述
然后我们添加用户名和邮箱:

git config --global user.name "XXX"
git config --global user.email "XXX"

git config --global user.name “XXX” 和 git config --global user.email “XXX” 命令用于设置 Git 用户的全局配置,其中 “XXX” 分别是你的用户名和邮箱。这两个配置信息将被用于每次你提交代码时的作者信息。
在这里插入图片描述

紧接着添加main.c到git仓库的暂存区:

git add main.c

在这里插入图片描述
git add main.c 命令用于将文件 main.c 添加到Git的暂存区。在执行这个命令后,main.c 的当前状态将被记录在Git的暂存区中,等待进一步的提交。这样做是为了将文件的更改纳入到下一次提交中。在执行 git add 之后,你可以使用 git commit 命令来提交这些更改。 注意噢,这里只是暂存区,还没提交

这时我们可以使用命令来查看一下暂存区的状态变化

git status

在这里插入图片描述
git status 命令用于显示工作目录和暂存区的状态。
截图的意思是:你当前处于一个新的Git仓库,且在master分支上有一些文件已经添加到了暂存区,其中包括一个新文件 main.c。如果你希望取消暂存某个文件,可以使用 git rm --cached 命令。
接下来,你可以执行 git commit 命令来提交这些更改。执行 git commit 后,Git将会要求你输入本次提交的相关信息,例如提交消息等。

接下来我们提交一下:

git commit -m "instial program"

git commit -m “instial program” 是一个用于提交代码更改到 Git 版本控制系统的命令。这个命令包含了两个主要部分:

git commit: 这个部分告诉 Git 你想要创建一个新的提交,将当前更改保存到版本历史中。

-m “instial program”: 这是一个选项 -m,用于在命令行中指定提交的消息或说明。在这个例子中,提交消息是 “instial program”,它描述了这个提交所做的更改或者提交的目的。 git commit -m “xxx” 命令中的双引号里的 “xxx” 部分是你需要填写的提交消息。这个消息应该简要地描述你在这次提交中所做的更改或者添加的功能。这样的提交消息可以帮助你和其他团队成员更容易地理解每次提交的目的,也方便在版本历史中追踪和管理代码变更。所以,请将实际的更改内容或者相关信息替代 “xxx” 部分。
在这里插入图片描述
我们再查看一下状态:
在这里插入图片描述
这会的输出中,它显示了你当前所在的分支是 master,并提示 “nothing to commit, working directory clean”,这意味着你的工作目录是干净的,没有未提交的更改。

我们还可以使用以下命令来查看提交记录信息:

git log

git log 命令用于显示版本提交历史记录。当你运行这个命令时,会显示每次提交的详细信息,包括提交者、提交日期、提交的哈希值以及提交消息。
在这里插入图片描述
这里的输出表示:你的 git log 输出显示了一个提交,哈希值为 dd73feaa05ff6f7e5b3b52b4e878c2101aab1272,作者为 elf_li,提交日期为 Mon Jan 8 12:04:00 2024 +0800,并且提交消息是 “instial program”

二、git分支管理

2.1、一些基础命令

使用以下命令查看本地分支

git branch

在这里插入图片描述
目前在主分支

查看一下状态:
在这里插入图片描述
现在我们修改一下文件:(新建一个main1.c 删除main.c)(现在是工作区出现了更改
在这里插入图片描述

git rm main.c
git add main1.c

删除名为 main.c 的文件,然后将名为 main1.c 的文件添加到暂存区。
在这里插入图片描述
然后我们提交:

git commit -m "delete main.c_add main1.c"

在这里插入图片描述
这段话是关于一个 Git 提交的信息。它表示你进行了一次提交,其中删除了一个名为 main.c 的文件,并创建了一个名为 main1.c 的新文件。这次提交共影响了两个文件,删除了 5 行内容,并且对文件的模式进行了更改。

值得注意的是,这里经常报这个错误:
error: bad index file sha1 signature
fatal: index file corrupt
一般我重新运行一下命令就可以成功,第一遍打命令都要报错 我也不知道为啥

然后这个命令是看一下:

git show

git show 命令用于显示一个或多个 Git 对象的详细信息,包括提交的更改、作者、提交时间等。如果你在命令行中运行 git show,它将显示最新的提交的详细信息。
在这里插入图片描述

git show --stat

git show --stat 命令用于显示提交的摘要信息和更改的统计信息。它会展示每个修改过的文件的简略统计,包括插入和删除的行数。
请添加图片描述

git log 

命令用于显示提交历史记录。
在这里插入图片描述
这里有两个提交,每个提交包括了提交的哈希值、作者、日期和提交消息。第一个提交删除了 main.c 文件并添加了 main1.c 文件,而第二个提交是初始化程序。

git show dd73feaa05ff6f7e5b3b52b4e878c2101aab1272

git show [commitid]查看某次提交的具体修改内容
在这里插入图片描述
还可以加上 --stat:

git show dd73feaa05ff6f7e5b3b52b4e878c2101aab1272 --stat

在这里插入图片描述

2.2、时间回溯

git reset --hard 是一个 Git 命令,用于将你的工作目录、暂存区和当前分支都回退到指定的提交或分支,这个操作会丢弃所有未提交的更改和历史记录

git reset --hard dd73feaa05ff6f7e5b3b52b4e878c2101aab1272

git reset --hard dd73feaa05ff6f7e5b3b52b4e878c2101aab1272 命令将工作区和暂存区都回退到指定的提交 dd73feaa05ff6f7e5b3b52b4e878c2101aab1272,并且丢弃之后的所有提交。
这个命令的效果是非常强烈的,它会使你的工作目录和暂存区的所有更改都回到指定提交的状态。在使用这个命令之前,请确保你理解它的影响,因为它会永久性地丢弃所有在指定提交之后的更改。
以下是实验效果:
在这里插入图片描述

2.3、新建分支,删除分支,重命名分支

创建新分支并切换到该分支的命令如下:

git checkout -b test

以下是实验结果:
在这里插入图片描述
给分支改名:

git branch -m test project_test

在这里插入图片描述
删除分支:

git branch -d test

在这里插入图片描述

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

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

相关文章

普中STM32-PZ6806L开发板(有点悲伤的故事)

简介 关于我使用 普中STM32-PZ6806L做了做了一些实验, 不小心输入12V,导致核心板等被烧坏, 为了利用电路和资源, 搭建了STM32F103CBT6并使用普中STM32-PZ6806L上面没有烧坏的模块的故事。 普中STM32-PZ6806L开发板 这块的STM32F103ZET6部分算是Closed了, 不准备换核…

共享WiFi项目怎么样,靠谱吗?业内专家为你解答

共享WiFi项目自问世以来,就备受关注,有人质疑它的可靠性,也有人对其充满信心。今天,我们就来聊聊共享WiFi项目怎么样,是否靠谱。 我们要明白共享WiFi项目是什么。共享WiFi项目是一种基于互联网的共享商业模式&#xf…

11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

顺序表实现(下)(C语言)

几道相关例题,帮助大家更好理解顺序表. 文章目录 前言 一、顺序表二、创建顺序表并初始化三.删除非递减顺序表L中的重复元素四.在非递减顺序表中删除[s,t]之间的元素五.设计算法逆置顺序表L,并将序列L循环左移六.顺序表A和B的元素个数分别为m,n.A表升序排序,B表降序排序,两表中…

伺服电机:伺服电机基础知识

一、什么是伺服 伺服,英文Servo,来源于拉丁语Servus,意思是奴隶,奴隶的特点就是完全按照主任的指令去做事。伺服电机,也就是严格按照控制指令来运行的电机。利用伺服电机搭建起来的系统或者机构就叫伺服系统或者伺服机…

SSH远程访问出现Permission denied(password)解决方法

首先,这个不是密码输错了的问题; 1、在主机先ping一下服务器 ping XXX.XXX.XX.XXX (服务器ip地址) 如果pin成功了,说明可以进行连接 查看服务器的ip ifconfig2、主机连接服务器 (服务器的ip) ssh testXXX.XXX.XX.…

一站式低代码开发平台JNPF初探

市面上的低代码产品有很多,如何找到一款难出错、高性价比的低代码开发平台? 从企业级应用构建角度来看,完成一个应用复杂度随着技术进步、需求细化、业务变化逐步提升的软件程序。用户也想要有更好的体验,复杂度更是成倍的提升。 …

算法第十一天-组合总和Ⅳ

组合总和Ⅳ 题目要求 解题思路 来自[负雪明烛] 题目有个明显的提示:求组合的个数,而不是每个组合。如果是要求出每个组合,那么必须使用回溯法,保存所有路径。但是如果是组合个数,一般都应该想到[动态规划]的解法。 直…

企业常用的几种实用的加速FTP传输方式

FTP作为互联网上最早应用的文件传输协议之一,同时也是企业内外常用的文件和数据交换方式。然而,随着数据量的增加和对传输速度、稳定性、安全性等要求的提高,FTP传输面临一系列挑战,给企业的业务效率和数据安全带来了困扰。本文将…

第二百五十四回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何给图片添加阴影"相关的内容,本章回中将介绍自定义Radio组件.闲话休提,让我们一起Talk Flutter吧…

LiveGBS流媒体平台GB/T28181功能-操作日志如何配置保留天数过滤记录的日志根据操作名称过滤记录日志

LiveGBS功能操作日志菜单如何配置保留天数过滤记录的日志根据操作名称过滤记录日志 1、操作日志2、配置保留天数3、配置不记录操作日志3.1、不记录所有3.2、不记录指定操作名称 4、相关问题4.1、级联操作日志筛选 5、搭建GB28181视频直播平台 1、操作日志 LiveGBS操作日志菜单…

【PostgreSQL】在DBeaver中实现序列、函数、视图、触发器设计

【PostgreSQL】在DBeaver中实现序列、函数、触发器、视图设计 基本配置一、序列1.1、序列使用1.1.1、设置字段为主键,数据类型默认整型1.1.2、自定义序列,数据类型自定义 1.2、序列延申1.2.1、理论1.2.2、测试1.2.3、小结 二、函数2.1、SQL直接创建2.1.1…