Linux -- git

embedded/2024/9/23 14:20:21/

1  啥是git

git是一个代码的历史版本管理工具,通过用树形结构管理一个代码版本可以快速实现回滚等操作

1.1  git基本概念

  • 工作区(Working Directory/Working Tree)

    • 这是你当前正在处理项目文件的地方。你可以在工作区中创建、修改、删除文件,这些改动是未被追踪或提交到版本控制系统中的。
  • 暂存区(Staging Area/Index)

    • 暂存区是一个临时区域,你可以将工作区中的改动放入这里,以便在提交之前进行整理和准备。可以理解为一个待提交的快照。当你运行 git add 命令时,文件的改动被添加到暂存区。
  • 版本库(Repository/Local Repository)

    • 版本库是项目的历史记录,包含了所有提交的历史快照。版本库存储在本地机器上,并且包含所有已提交的更改记录。你可以通过 git commit 命令将暂存区中的内容提交到版本库中,从而生成一个新的提交历史记录。

2  git常用命令

2.1  设置信息

git config --global user.name # 设置用户名
git config --global user.email # 设置全局邮箱

信息设置在了~/.gitconfig


2.2  将一个文件夹配置成仓库

git init

所有的信息放在了.git/隐藏文件夹中,此文件夹是一个树状结构

git status # 可查看仓库状态,看文件有无存进暂存区等
git add # 将文件加进暂存区
git add . # 全部加进去


2.3  将历史版本存进版本库里

 git commit -m 备注

        更新代码

git status
git add 更改文件名


此时在输入git status,当文件名变绿说明已经放进了暂存区,输入git commit -m则表明永久存下来,放入了新节点


        具体操作的结果如下图所示:


2.4   查看某个文件与当前分支最新的版本区别(暂存区里最新版本的区别)

git diff 文件名


2.5  从暂存区删除

git rm --cached xxx
git restore --stage

两者的区别在于,前者属于不希望管理该文件,将文件从列表中删除出来,后者输运仍管理文件,但从暂存区中取出


2.6  查看当前分支(从最初起点走到当前head的路径)的所有版本

git log 

        顺序从下向上显示,按q退出

--pretty=oneline

        实现一行显示

2.7  往前回滚某一个历史记录

git reset --hard HEAD^
git reset --head HEAD ~

 一个~一个版本,两个^^两个版本,~^相同
回滚并不会将内容删掉

        实现回退回来:

git reflog # 查看HEAD指针的所有的移动记录

在给出的移动记录中,会有每一个点的编号,即哈希值前7位

        回滚到任意结点

git reset --head 版本号

        重点:git loggit reflog的区别

git log从起点到当前head节点的路径
git refloghead的所有的移动历史节点

        恢复文件

主要的背景是:当前文件修改放在暂存区,但是想恢复到未修改前的状态
下面是将文件未存入暂存区的删除

git checkout - 文件名git restore 文件名

其中git restore并非回滚到上一个历史版本,而是从工作区回滚到暂存区版本
如果回滚到暂存区后,暂存区也不想留,可输入以下命令

git restore --stage 文件名

2.8   持久化

git commit -m # 将暂存区持久化

commit可以只一部分,具体操作如下图所示:


 2.9  删除文件

        一开始,与一般的文件命令管理一样

rm 文件

        在文件删除的操作完成后,需要进行持久化

        如果文件不小心删除,要回滚回去

git restore 文件名

         前提是:修改文件已经从暂存区中拿出


http://www.ppmy.cn/embedded/100609.html

相关文章

华为数通方向HCIP-DataCom H12-821题库(更新单选真题:1-10)

第1题 1、下面是一台路由器的部分配置,关于该配置描述正确的是? [HUAWEllact number 2001 [HUAWEl-acl-basic-2001]rule 0 permit source 1.1.1.1 0 [HUAWEl-acl-basic-2001]rule 1 deny source 1.1.1.0 0 [HUAWEl-acl-basic-2001]rule

如何用Python实现招聘市场大数据可视化分析——ftree算法实战指导

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

探索Qotom Q51251OPS迷你电脑:功能与广泛应用

Qotom Q51251 OPS(开放可插拔规范)迷你电脑是一款设计紧凑且功能强大的设备,旨在满足不同领域的多样化需求。基于英特尔Core i5-12450H Alder Lake H处理器,这款设备不仅具备出色的计算性能,还提供了丰富的连接选项&am…

知识竞赛答题设备及答题方式有哪些

根据我们多年的知识竞赛承办经验,我来谈谈在知识竞赛中常用的答题设备和答题方式。 一、常用答题设备 1.电脑 如果电脑资源充足,可以用笔记本电脑进行答题,笔记本电脑可以采取有线或无线方式进行连网,可以根据情况选择连网方案&…

基于vue3和audio封装的简易音频播放器

样式如图所示 <template><div class"audio-player"><div class"player_top" flex-ac flex-justify-between ><div class"fileName genericTitle" fs-28 l-height-32 height-64 pr-42 flex-ac><span class"t…

《机器学习》—— 通过下采样方法实现逻辑回归分类问题

文章目录 一、什么是下采样方法&#xff1f;二、通过下采样方法实现逻辑回归分类问题三、下采样的优缺点 一、什么是下采样方法&#xff1f; 机器学习中的下采样&#xff08;Undersampling&#xff09;方法是一种处理不平衡数据集的有效手段&#xff0c;特别是在数据集中某些类…

搜维尔科技:Mnaus VR数据手套-我们正在最先进的手部动作捕捉技术来突破机器人科学的界限

Mnaus VR数据手套-我们正在最先进的手部动作捕捉技术来突破机器人科学的界限 搜维尔科技&#xff1a;Mnaus VR数据手套-我们正在最先进的手部动作捕捉技术来突破机器人科学的界限

僵尸进程的基础学习

1、概念 僵尸进程指的是处于僵尸态的进程&#xff0c;这种进程无法进行调度&#xff0c;但其所占用的系统资源并未被释放。僵尸态是进程生命周期的必经阶段&#xff0c;是无法避免的&#xff0c;但为了节约系统资源&#xff0c;应尽快清理腾出僵尸态进程所占用的内存资源。 2、…