Git 工具的「安装」及「基础命令使用」

- 第 119 篇 -
Date: 2025 - 09 - 05
Author: 郑龙浩(仟墨)

Git 工具的「安装」及「基础命令使用」

学习课程:https://www.bilibili.com/video/BV1MU4y1Y7h5?spm_id_from=333.788.player.switch&vd_source=2683707f584c21c57616cc6ce8454e2b&p=5

1 基本Linux命令

  • ls / ll 查看当前目录 ls 不能看隐藏文件,ll 可以看隐藏文件
  • cat 查看文件内容
  • touch 创建文件
  • 编辑器 可以用记事本,vi编辑器等

2 Git 环境配置

下载地址:https://git-scm.com/downloads

在官网下载完之后,双击.exe文件,直接默认安装即可

当安装完Git后,首先要做的事情就是设置用户名和Email地址,因为每次Git提交都会使用该用户信息(很重要的)

3 Git GUI Here、Git Bash Here

在桌面或者其他目录下右击,可以看到两个菜单:

  • Git GUI Here Git提供的图形界面工具
  • Git Bash Here Git提供的命令行工具

4 设置邮箱、用户名

git是版本控制,需要记录哪个人做了什么事情,怎么确定呢,是通过邮箱来确定是哪个人的

  1. 在桌面右键,选择Open Git Bash Here(有些显示Git Bash Here),会有一个黑色弹窗,相当于内置了一个小的Linux

  2. 设置用户信息

    git config --global user.name "郑龙浩"

    git config --global user.email "123456.@gmail.com"

    (查看邮箱的方法,输入指令的时候,将上方指令的引号以及引号中的内容去掉即可)

5 解决Git Bash乱码的问题

  1. 打开GitBash,执行命令:git config --global core.quotepath false

  2. 在要修改的文件下加入两行命令

    export LANG="zh_CN.utf-8"
    export LANG="zh_CN.utf-8"
    

6 获取本地仓库

.git存在的目录就是仓库

在当前目录中,除了.git,其他文件夹/文件夹都叫做工作目录

  1. 在计算机中的一个某文件夹内创建一个空目录(空文件夹)

    右键,创建文件夹即可

  2. 然后进入这个新的文件夹(目录),右击空白处,选择Open Git Bash Here,打开GitBash窗口

  3. 初始化当前目录为一个git仓库

    执行命令git init,输入回车,在当前目录中会多出一个.git文件夹(隐藏文件)

7 工作区、暂存区、仓库

  1. 无论是刚创建(未跟踪)还是已修改(未暂存)的文件,即「工作区」的文件,都需要执行一个git add指令将该类文件放到「暂存区」,执行git add命令

只有放在暂存区的文件才能提交到仓库

  1. 想要将**「暂存区」的文件放到「仓库」**,就得执行gti commit命令
  • 工作区:

    「工作区」文件放到「暂存区」用 git add 指令

    • 未跟踪文件:直接在仓库目录中创建了个文件,但是git并不知道该文件的存在,也不能控制该文件

    • 未暂存文件:修改了已经存在的文件,但是并未告诉git我修改了

  • 暂存区:提交到仓库之前的缓冲区

    「暂存区」文件放到「仓库」,用 git commit 指令

    • 已暂存文件:就是将「未跟踪文件」或者「未暂存文件」告诉git,让git跟踪这类文件
  • 仓库:将缓存区的文件提交到仓库

8 新建/修改文件提交到仓库的过程

流程图如下:

graph LRA[【工作区】<br/>修改/新建文件] -->|git add| B[【暂存区】<br/>已暂存文件]B -->|git commit| C[【仓库】<br/>]C --> C1[commit 01]C --> C2[commit 02]C --> C3[commit 03]
  1. 查看文件状态(看是在「暂存区」、「工作区」还是「仓库」)

    拓:创建文件指令touch file01.txt,相当于在文件管理器中,在当前目录右击,新建文件file01.txt

    git status
    
    • 如果出现红色字体,表示文件在「工作区」,如下:

      On branch main
      Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   file01.txt --> 红色字体no changes added to commit (use "git add" and/or "git commit -a")
      
    • 如果出现绿色字体,表示问价在「暂存区」

      On branch main
      Changes to be committed:(use "git restore --staged <file>..." to unstage)modified:   file01.txt --> 绿色字体
      
  2. 将「工作区」的文件(新建/修改文件)加入「暂存区」

git add . --> 将当前目录中的所有文件都加到暂存区
git add "file01.txt" --> 将当前目录中的文件file01.txt加到「暂存区」
  1. 将「暂存区」的文件提交到「仓库」

    为什么要加注释:为了方便查看每次提交,提交的是什么内容

git commit -m "注释内容" --> 将暂存区的所有文件提交到仓库,并加上对应注释

9 查看提交日志

以下指令太长可以设置别名方便一些 ,设置别名的方法我目前还不会,后期再学吧

输入git log 的时候可以查看所有的提交记录

输入git log --abbrev-commit 的时候,可以将**「提交记录唯一标识」(commitID)**显示的更加简短,一般只会显示前面几个,如:

07752f935c6f700ce926e72a2bbb4c7c7b7ecf89变成:07752f9

在后面版本退回的时候,一般使用这个简短的也可以

git log 					--> 查看提交记录
git log --all 				--> 显示所有的分支
git log --prettty=online 	--> 将提交信息显示为一行
git log --abbrev-commit 	--> 使得输出的commitID更简短
git log --graph 			--> 以图的形式显示
git log --dacorate 			--> mac默认是2015版,需要手动输入,win中的默认执行此功能,不用写
git long --all --prettty=online --abbrev-commit --graph --> 包含上面的一切指令的功能 	

执行完指令以后,从上往下,是最新提交–>最后提交

10 版本回退

主要功能就是:将版本切换

git reset --hard commitID
  1. --hard 可以换成其他的参数,目前只记录这一个就行了,学其他的容易记混

  2. commitID 这里并不是指的输入这个单词,而是指的提交记录唯一标识,如下:

    最上面是最新提交的,最下面是最后提交的,不要弄反了,我刚开始弄反了

    正常显示,指令:git log
    查看所有提交记录

    简短显示 ,指令:git log --all --abbrev-commit --graph****
    查看提交记录(将显示变简洁)

  3. 将「comitID」(简写的就可以)复制下来,粘贴到git reset --hard后边,可以回溯至以前的版本,如下:回溯到第二次提交的版本

    如何复制,选中某个区域,按「Enter」,即可复制,鼠标右击即可粘贴

    在这里插入图片描述

    执行完以上的命令以后,文件内容会变成第二次提交的那本

    比如第三次提交的文件内容是修改文件11,第二次文件是修改文件,如下:

    提三次提交 –> 执行命令前的内容

    在这里插入图片描述

    回溯到第二次提交 -> 内容改变
    在这里插入图片描述

如果前面clear了,使用git log命令是无法找到每次提交的记录的,那么还能找到原来的提交记录标识,并未还原吗?

是可以的,只是无法直接显示每次的提交记录,但是可以看到我们每次的操作过程

可以用以下的命令:

git reflog

在这里插入图片描述

当然,我只是看教程中出现了这种情况,我自己clear清空以后,再执行git log依然可以看到所有的提交记录,不知道是不是我版本和老师版本不同的问题

查看已经删除记录

git relog不只是可以看到操作过程,开可以看到已经删除的记录

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

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

相关文章

2025高教社数学建模国赛A题 - 烟幕干扰弹的投放策略(完整参考论文)

基于模拟遗传退火的烟幕弹投递方式的研究 摘要 烟幕干扰弹作为一种具有成本低、效费比高等优点的典型防御手段,主要通过化学燃烧或爆炸分散形成气溶胶云团,在目标前方特定空域形成有效遮蔽,从而干扰敌方导弹攻击路径。随着精确投放技术的发展,现可利用无人机实现烟幕干扰…

[源力觉醒 创作者计划]_文心一言 4.5开源深度解析:性能狂飙 + 中文专精

文章目录[源力觉醒 创作者计划]_文心一言 4.5开源深度解析:性能狂飙 中文专精一. 部署实战&#xff1a;单卡环境的极速落地1.1 &#x1f5a5;️ 环境配置の手把手教程 &#x1f4dd;部署准备&#xff1a;硬件与镜像依赖安装&#xff1a;一行代码搞定1.2 &#x1f680; 模型启动…

开发微服务的9个最佳实践

微服务架构是一种演进的模式&#xff0c;从根本上改变了服务器端代码的开发和管理方式。这种架构模式涉及将应用程序设计和开发为松散耦合服务的集合&#xff0c;这些服务通过定义良好的轻量级 API 进行交互以满足业务需求。它旨在通过促进持续交付和开发来帮助软件开发公司加速…

Karmada v1.15 版本发布

Karmada 是开放的多云多集群容器编排引擎&#xff0c;旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容 Kubernetes 原生 API 的能力&#xff0c;Karmada 可以平滑迁移单集群工作负载&#xff0c;并且仍可保持与 Kubernetes 周边生态工具链协同。 Karmada v1.15 版本现已…

[GYCTF2020]Ezsqli

文章目录测试过滤找注入点布尔盲注无列名盲注总结测试过滤 xor for distinct information handler binary floor having join pg_sleep bp测试出来禁用了这些。 找注入点 查询回显推断1Nu1Labool(false)1’bool(false)1’#bool(false)不是单引号包裹1"#bool(false)没有引…

Agno 多 Agent 协作框架 - 手把手从零开始教程

本教程将带你从零开始&#xff0c;一步步构建一个完整的多 Agent 协作系统。每一步都有详细的代码示例和解释&#xff0c;让你真正理解 Agno 框架的工作原理。第一步&#xff1a;创建你的第一个 Agent 让我们从最简单的开始 - 创建一个能回答问题的 Agent。 1.1 创建基础文件 首…

数据库查询优化

这篇文章适合刚刚入手项目的小伙伴&#xff0c;为大家如何提高数据库查询效率提供一些建议。1.添加索引1.1 索引是什么对于索引基础薄弱的同学&#xff0c;我们可以从 “索引是什么” 简单类比&#xff1a;索引就像书籍的目录&#xff0c;能帮数据库快速定位到需要的数据&#…

安徽大学概率论期末试卷及答案解析

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;安徽大学的概率论课程围绕随机现象的规律性&#xff0c;覆盖了多个核心概念&#xff0c;如随机事件的概率、条件概率、独立事件、概率分布、期望值、方差、大数定律和中心极限定理。本资源包含期末试卷及答案&a…

HarmonyOS应用开发之界面列表不刷新问题Bug排查记:从现象到解决完整记录

Bug排查在软件开发过程中扮演着至关重要的角色&#xff0c;本文采用日记形式记录了Bug排查的全过程&#xff0c;通过这种方式可以更加真实、详细地记录问题&#xff0c;便于后续追溯和经验沉淀。 Bug背景 在使用HarmonyOS的ArkUI框架开发一个卡片管理应用时&#xff0c;遇到了…

FastVLM-0.5B 模型解析

模型介绍 FastVLM&#xff08;Fast Vision-Language Model&#xff09;是苹果团队于2025年在CVPR会议上提出的高效视觉语言模型&#xff0c;专为移动设备&#xff08;如iPhone、iPad、Mac&#xff09;优化&#xff0c;核心创新在于通过全新设计的 FastViTHD混合视觉编码器 解决…

集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测

集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测 一、主要功能 该代码使用 CNN 提取特征,LSTM 捕捉时序依赖,并通过 AdaBoost 集成多个弱学习器(每个弱学习器是一个 CNN-LSTM 网络),最终组合成一个强预测器,用于回归预测任务。代码完成了从数据预处理、模型…

关于Homebrew:Mac快速安装Homebrew

关于macOS 安装HomebrewHomebrewHomebrew介绍Homebrew 官网地址Homebrew 能安装什么&#xff1f;Mac上安装Homebrew主要步骤&#xff1a;打开终端&#xff0c;执行官网安装脚本注意遇到问题①&#xff1a;脚本在克隆 Homebrew 核心仓库时&#xff0c;​​无法连接 GitHub​​&a…

【前端】使用Vercel部署前端项目,api转发到后端服务器

文章目录Vercel是什么概要Vercel部署分为两种方案&#xff1a;一、使用GitHub构建部署二、通过 Vercel CLI 上传本地构建资源注意事项转发API到后端小结Vercel是什么 Vercel是一款专为前端开发者打造的云部署平台&#xff0c;它支持一键部署静态网站、AI工具和现代Web应用。Ve…

滚珠导轨在工业制造领域如何实现高效运行?

在工业制造领域中滚珠导轨凭借其高精度、低摩擦、高刚性等特点&#xff0c;被广泛应用于多种设备和场景&#xff0c;并在设备性能中起着关键作用&#xff0c;以下是具体应用&#xff1a;加工中心&#xff1a;滚珠导轨用于加工中心的工作台和主轴箱等部件的移动&#xff0c;能保…

大基座模型与 Scaling Law:AI 时代的逻辑与困境

一、背景&#xff1a;为什么大模型一定要“做大”&#xff1f; 在人工智能的发展历程中&#xff0c;有一个不容忽视的“铁律”&#xff1a;更大的模型往往意味着更强的性能。从 GPT-2 到 GPT-4&#xff0c;从 BERT 到 PaLM&#xff0c;从 LLaMA 到 Claude&#xff0c;每一代的…

内网的应用系统间通信需要HTTPS吗

内网是否需要 HTTPS&#xff1f; 虽然内网通常被视为“相对安全”的环境&#xff0c;但仍需根据具体情况决定是否使用 HTTPS&#xff0c;原因如下&#xff1a; 内部威胁风险 ● 内网可能面临内部人员攻击、横向渗透&#xff08;如黑客突破边界后在内网扫描&#xff09;、设备…

6.ImGui-颜色(色板)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;5.ImGui-按钮 IMGui中表示颜色的的结构体 ImVec4和ImU32&#xff0c;如下图红框…

【C++】Vector完全指南:动态数组高效使用

0. 官方文档 vector 1. vector介绍 Vector 简单来说就是顺序表&#xff0c;是一个可以动态增长的数组。 vector是表示可变大小数组的序列容器。 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c…

关于无法导入父路径的问题

问题重现 有下面的代码&#xff1a; from ..utils import Config,set_DATA_PATH DATA_PATH set_DATA_PATH()报错如下&#xff1a;from ..utils import Config,set_DATA_PATH ImportError: attempted relative import beyond top-level package解决方案 #获取当前脚本所在目录的…

C/C++包管理工具:Conan

Conan是一个专为C/C设计的开源、去中心化、跨平台的包管理器&#xff0c;致力于简化依赖管理和二进制分发流程。Conan基于Python进行开发&#xff0c;支持与主流的构建系统集成&#xff0c;提供了强大的跨平台和交叉编译能力。通过Conan&#xff0c;开发者可以高效的创建、共享…