Git学习笔记(第3章):Git常用命令

目录

3.1 设置用户签名

3.2 初始化本地库

3.3 查看本地库状态

3.4 添加暂存区

3.5 提交本地库

3.6 历史版本

3.7 修改文件

3.8 版本穿梭

小结


命令

作用

git config --global user.name 用户名

设置用户签名

git config --global user.email 邮箱

设置用户签名

git init

初始化本地库

git status

查看本地库状态

git add 文件名

添加到暂存区

git commit -m “日志信息文件名

提交到本地库

git refloggit log

查看历史版本

git reset –hard 版本号

版本穿梭

3.1 设置用户签名

基本语法

  • git config --global user.name 用户名
  • git config --global user.email 邮箱

案例实操

  • Step1:在桌面或任意位置右键打开Git客户端

  • Step2:设置用户签名(@的前面为当前Windows的登录用户)

  • Step3:验证有效性(查看配置文件)
    • 路径:C:\Users\Bigbeard_Liao\ .gitconfig

几点说明

  • Git首次安装成功后,必须设置一次用户签名,否则无法提交代码。
  • 用户签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
  • 邮箱为虚拟邮箱,现实中无需真实存在,并且Git也不会验证该邮箱的合法性和真实性。
  • 此处设置的用户签名登录代码托管中心(GitHub)的账号没有任何关系。

3.2 初始化本地库

        若想使用Git管理某个项目,就必须让Git获取该项目目录的管理权限(未进行初始化的项目,Git是无法进行管理的)。

基本语法

  • git init

案例实操

要求:使用Git管理项目git-demo(此项目下不含任何内容,仅用于演示)

  • Step1:鼠标手动点击文件夹,进入项目(Windows路径具有盘符,需要将\修改为/,不便于使用cd命令直接进入)

  • Step2:在当前位置(即项目的根目录下)打开Git客户端

  • Step3:初始化本地库
    • 在项目的根目录下,自动生成.git的文件夹
    • 默认情况下,.git文件夹是隐藏的,需要取消隐藏才能看见
    • .git文件夹不允许修改,否则Git将无法管理该项目

  • Step4:查看.git文件夹
    • 命令:ll 或 ll -a(-a显示所有的内容,包括隐藏文件)

  • 注:在Git Bash中使用的命令,与Linux命令完全相同。

3.3 查看本地库状态

基本语法

  • git status

案例实操

  • Step1首次查看本地库状态(工作区不存在任何文件
    • On branch master:当前本地库位于master分支(默认分支名字)上
    • No commits yet:当前还未提交过任何历史版本
    • nothing to commit (create/copy files and use "git add" to track):当前没有任何东西需要提交

  • Step2:新增文件
    • 新增并编辑文件:vim hello.txt
    • 查看文件(全部内容):cat hello.txt
    • 查看文件(部分内容):tail -n 1 hello.txt(最后一行)

  •  Step3再次查看本地库状态(工作区已经存在文件

  • 文件状态1:Untracked files(未跟踪的文件)
    • 在工作目录(工作区)中有新文件,但尚未被Git跟踪;
    • 这些文件不在Git的版本控制之下,Git并不追踪这些文件的变化;
    • 可使用git add命令将这些文件添加到暂存区,以实现Git的追踪;然后使用git commit将其提交到版本库。 

3.4 添加暂存区

基本语法

  • git add 文件名:添加单个文件
  • git add .:添加所有文件

案例实操

  • Step1查看本地库状态(同“3.3 Step3”)(暂存区不存在任何文件

  • Step2:将工作区的文件添加到暂存区,再次查看本地库状态(暂存区检测到存在文件
    • Git默认将行末换行符进行转换
    • Windows的行末换行符:CRLF(Carriage Return Line Feed) \r\n → 回车符+换行符
    • Linux的行末换行符:LF(Line Feed)  \n → 仅为换行符

  • Step3:将暂存区的文件删除(工作区的文件并没有删除),再次查看本地库状态(同“Step1”)

  • Step4:将工作区的文件重新添加到暂存区,并查看本地库状态

  • 文件状态2:Changes to be committed(已暂存的改动)
    • 文件的修改已经被添加到了暂存区(在暂存区生成了快照,等待被提交到版本库),Git已经追踪到该文件;
    • 这个状态是通过“git add”命令将文件添加到暂存区后出现的;
    • 可使用“git commit”命令将暂存区的改动提交到版本库;或使用“git rm”命令将该文件从暂存区中删除。

3.5 提交本地库

基本语法

  • git commit -m "日志信息" 文件名

案例实操

  • Step1查看本地库状态(同“3.4 Step4”)(存在待提交的文件

  • Step2:将暂存区的文件提交到本地库,再次查看本地库状态(不存在待提交文件
    • 不再显示No commits yet,表明当前已经提交过历史版本或拥有版本信息。
    • 显示nothing to commit, working tree clean,表明提交后没有文件的新增或修改,工作树是干净的,无任何东西需要再次提交。

3.6 历史版本

基本语法

  • git reflog:查看版本精简信息(精简版本号、指针指向、日志信息)
  • git log:查看版本详细信息(完整版本号、指针指向、提交者的用户签名Author、提交日期Date、日志信息)

案例实操

  • 当前指针HEAD指向master分支的第一个历史版本

3.7 修改文件

第二次修改

  • Step1:修改文件,查看本地库状态

  • Step2:将工作区的修改文件添加到暂存区,再次查看本地库状态

  • Step3:将暂存区的文件提交到本地库,再次查看本地库状态、历史版本
    • Git是按照行来维护文件的,修改一行 等价于 删除一行和插入一行

第三次修改

  • Step1:修改文件,查看本地库状态

  • Step2:将工作区的修改文件添加到暂存区,再次查看本地库状态

  • Step3:将暂存区的文件提交到本地库,再次查看本地库状态、历史版本

  • 注1:由于当前指针HEAD指向master分支的第3个版本,因此使用“cat”命令查看文件,显示的是第3个版本的内容。

  • 注2:尽管存在多个版本,但是工作区从始至终只有一个文件。换句话说,Git进行版本控制并不是通过副本来实现的,而是通过指针实现的。

  • 文件状态3:Changes not staged for commit(未暂存的改动)
    • 这表示已经跟踪的文件发生了修改,但这些修改尚未被添加到暂存区。
    • 这些修改不会被包含在下一次的提交中,除非你使用git add命令将其添加到暂存区。
    • 这个状态通常通过git diff查看未暂存的改动。

3.8 版本穿梭

基本语法

  • git reset --hard 版本号

案例实操1(向前穿梭)

要求:从历史版本3穿梭回到历史版本2

  • Step1:查看历史版本信息(复制历史版本2的版本号)

  • Step2:版本穿梭(切换回第2个历史版本)

  • Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第2个版本)
    • 注:工作区中hello.txt文件的内容也会穿梭到相应版本

  • Step4:验证指针的指向(查看配置文件)

案例实操2(向前穿梭)

要求:从历史版本2穿梭回到历史版本1

  • Step1:查看历史版本信息(复制历史版本1的版本号)

  • Step2:版本穿梭(切换回第1个历史版本)

  • Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第1个版本)
    • 注:工作区中hello.txt文件的内容也会穿梭到相应版本

  • Step4:验证指针的指向(查看配置文件)

案例实操3(向后穿梭)

要求:从历史版本1穿梭到历史版本3

  • Step1:查看历史版本信息(复制历史版本3的版本号)

  • Step2:版本穿梭(切换回第3个历史版本)

  • Step3:再次查看历史版本信息(此时指针HEAD已经指向master分支的第3个版本)
    • 注:工作区中hello.txt文件的内容也会穿梭到相应版本

  1. Step4:验证指针的指向(查看配置文件)

小结

        在Git中,有三种常见的状态,分别是"Untracked files"、"Changes not staged for commit"和"Changes to be committed"。这些状态反映了文件在Git版本控制中的不同变化阶段。

  • Untracked files(未跟踪的文件):
    • 这表示有新文件在工作目录中,但尚未被Git跟踪。
    • 这些文件不在Git的版本控制之下,Git并不追踪这些文件的变化。
    • 可以使用git add命令将这些文件添加到暂存区,然后使用git commit将其提交到版本库。
  • Changes not staged for commit(未暂存的改动):
    • 这表示已经跟踪的文件发生了修改,但这些修改尚未被添加到暂存区。
    • 这些修改不会被包含在下一次的提交中,除非你使用git add命令将其添加到暂存区。
    • 这个状态通常通过git diff查看未暂存的改动。
  • Changes to be committed(已暂存的改动):
    • 这表示文件的修改已经被添加到了暂存区,准备提交到版本库。
    • 这个状态是通过git add命令将文件添加到暂存区后出现的。
    • 使用git commit命令可以将暂存区的改动提交到版本库。
    • 这些状态可以帮助你了解工作目录中文件的状态,以及它们在版本控制中的变化。使用git add和git commit命令可以管理这些状态,使代码的变化被记录并保持版本控制的一致性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hikvision综合安防管理平台files;.css接口存在任意文件读取漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. Hikvisi…

Python基础之文件操作(I/O)

和其他编程语言一样,Python 也具有操作文件(I/O)的能力,比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。合理应用python提供的文件操作基本函数,可大大提高自动化实现的效率与框架代码的稳定性…

[docker] Docker 基本管理

一、Docker 相关知识 1.1 Docker概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻…

中国工业设计行业现状及趋势

近几年来,我国工业设计产业的规模不断扩大,逐渐渗透到人们的日常生活当中,企业在通过对市场的需求方面可以对产品的设计方向进行了解,通过以人为本的设计理念,提高我国工业设计产业的总体实力。目前我国工业出口总额为…

navicat数据库密码解密

1、打开 https://tool.lu/coderunner/ 在线工具 2、输入代码 <?php namespace FatSmallTools; class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected $aesIv libcciv libcciv ;protected $blowString 3DC5CA39;protected $blow…

vue3 项目中 arguments 对象获取失败问题

问题 在 vue3 项目中 获取到的 arguments 对象与传入实参不符&#xff0c;打印出函数中的 arguments 对象显示如下&#xff1a; 原因 作者仔细回看代码才发现&#xff0c;自己一直用的是 vue3 的组合式写法&#xff0c;函数都是箭头函数&#xff0c;而箭头函数不存在 argumen…

Windows脚本:监控并自动重启某个进程

Windows脚本&#xff1a;监控自动并重启某个进程 一、简介二 .bat脚本方式2.1 编制脚本2.2 创建并运行脚本2.3 设置关闭cmd窗口 三、使用VBScript脚本方式3.1 编制脚本3.2 运行脚本 四、设置脚本开机自启动五、某些软件加入启动项后&#xff0c;开机不会自动启动的解决方法 在实…

Flink多流转换(1)—— 分流合流

目录 分流 代码示例 使用侧输出流 合流 联合&#xff08;Union&#xff09; 连接&#xff08;Connect&#xff09; 简单划分的话&#xff0c;多流转换可以分为“分流”和“合流”两大类 目前分流的操作一般是通过侧输出流&#xff08;side output&#xff09;来实现&…

Javaweb之SpringBootWeb案例本地存储的详细解析

2.2 本地存储 前面我们已分析了文件上传功能前端和后端的基础代码实现&#xff0c;文件上传时在服务端会产生一个临时文件&#xff0c;请求响应完成之后&#xff0c;这个临时文件被自动删除&#xff0c;并没有进行保存。下面呢&#xff0c;我们就需要完成将上传的文件保存在服…

ZigBee学习(一)

文章目录 一、ZigBee介绍1.1 ZigBee协议特点1.2 ZigBee协议体系结构1.3 ZigBee设备类型 二、IEEE 802.15.42.1 物理层2.2 MAC层2.3 如何实现网络和设备寻址2.4 能量管理 三、ZigBee网络拓扑结构四、ZigBee配置参数 一、ZigBee介绍 ZigBee是一种基于IEEE 802.15.4标准的高级通信…

网易云音乐JS逆向分析

文章目录 页面分析抓包分析JS逆向分析代码编写 页面分析 先来分析一下页面 当我们点击播放按钮的时候&#xff0c;音乐开始播放。实际上这个逻辑背后的原理是这个按钮后面对应的是一个url&#xff0c;这个地址是通过ajax来进行局部刷新的。 所以我们可以通过抓包工具&#…

防御保护----信息安全

网络安全概述 信息安全&#xff1a;防止任何对数据进行未授权访问的措施&#xff0c;或者防止造成信息有意无意泄露、破坏、丢失等问题的发生&#xff0c;让数据处于远离危险、免于威胁的状态和特性。 网络安全&#xff1a;计算机网络环境下的信息安全。 网络安全背景 网络空间…

Open3D 与 Point Cloud 处理

点云基础3D数据结构点云采集方法点云处理框架点云操作 Open3D基础操作 点云基础 3D数据结构 点云&#xff08;Point Cloud&#xff09;&#xff1a; 点云是由一组离散的点构成的三维数据集合&#xff0c;每个点都包含了坐标信息 (x, y, z) 、颜色 (RGB)、类别 (cls)、强度值等…

宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…

梳理Langchain-Chatchat知识库API接口

一.Langchain-Chatchat 知识库管理 1.Langchain-Chatchat 对话和知识库管理界面 Langchain-Chatchat v0.28 完整的界面截图&#xff0c;如下所示&#xff1a; 2.知识库中源文件和向量库 知识库 test 中源文件和向量库的位置&#xff0c;如下所示&#xff1a; 3.知识库表结构 k…

超融合基础架构理解

1 超融合基础架构 1.1 定义 超融合基础架构&#xff08;Hyper-converged infrastructure&#xff0c;缩写为HCI&#xff09;&#xff0c;是一种集成了存储设备及虚拟运算的信息基础架构框架。在这样的架构环境中&#xff0c;同一厂商的服务器与存储等硬件单元&#xff0c;搭配…

比较有创意的网站

有创意的网站通常展示了独特的设计、交互或内容。以下是一些备受赞誉的有创意的网站&#xff0c;你可以参考&#xff1a; Awwwards: Awwwards 是一个评选并展示全球最优秀网站的平台。你可以在这里找到很多有创意的网站设计。 Awwwards CSS Design Awards: 类似于Awwwards&…

若依分页失败,由于对数据二次处理导致total只有十条

在使用若依框架的过程中&#xff0c;如果是查询结果数据直接返回&#xff0c;那么其自带的分页插件可以正常返回数据以及总条数&#xff0c;但若是对数据进行了其他二次处理&#xff0c;再返回就会出现异常&#xff0c;即无论查询了多少条&#xff0c;total都只会显示10&#x…