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命令可以管理这些状态,使代码的变化被记录并保持版本控制的一致性。

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

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

相关文章

全国各城市绿地及绿化面积数据,shp/excel格式,2020-2022年

基本信息. 数据名称: 全国各城市绿地及绿化面积数据 数据格式: Shp、excel 数据时间: 2020-2022年 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1province省份名称2city城市名称4city_dm城市…

【python】python实现代码雨【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 一、效果图: 二、准备工作 (1)、导入必要的模块: 代码首先导入了需要使用的模块:requests、lxml和csv。 import requests from lxml import etree import csv 如果出现模…

Linux大老都是怎么记住这么多命令的?

今天给大家带来的是面试/实际工作中经常用到的Linux相关操作命令: 一. vi/vim编辑器 ---->文本编辑器 作用:创建文件,编辑文件,查看文件 格式:vi/vim 文件的名字 解析:如果该文件不存在,vi就会创建该…

外包干了一个月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【QML COOK】- 012-在QML中使用OpenGL渲染

本文是参照了两个文章编写的。 一是QML的例子:Scene Graph - OpenGL Under QML | Qt Quick 6.6.1 二是关于SceneGraph的介绍:Qt Quick Scene Graph | Qt Quick 6.2.11 这里我提取一下重点方便大家理解。 一个QML程序只能用一种计算机图形接口。不能有…

基于SpringBoot Vue美食网站系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

测试工程师必看!测试用例设计全解析,让你彻底掌握

测试工程师在入行时,都会接触到一个名词——测试用例,都知道测试用例是干什么用的,提到设计测试用例的方法,大部分测试工程师都会侃侃而谈:等价类法、边界值法、判定表法、正交分解法……这些方法说起来都如数家珍&…

揭秘大数据时代的内存数据存储、数据缓存:redis缓存框架!

介绍:Redis 是一个开源的、基于内存的数据存储系统,它也可以持久化数据到硬盘上。Redis 以其高性能、高可靠性和丰富的数据结构支持而著称,在现代应用程序中被广泛用作数据库、缓存和消息中间件。 主要特点: 键值存储:…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目,重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor,发现并没有安装 同理,也可以安装VSCode的插件 问题解决了…

.NET集成IdGenerator生成分布式全局唯一ID

前言 生成分布式唯一ID的方式有很多种如常见的有UUID、Snowflake(雪花算法)、数据库自增ID、Redis等等,今天我们来讲讲.NET集成IdGenerator生成分布式全局唯一ID。 分布式ID是什么? 分布式ID是一种在分布式系统中生成唯一标识符…

实用的SQLite数据库可视化管理工具推荐

前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用门槛。今天推荐7款实用的SQLite数据库可视化管理工具(GUI),帮助大家更好的管理SQLite数据库。 什么是SQLite? SQLite是一个…

【每日一题】2.LeetCode——删除有序数组中的重复项

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

JavaScript中的事件

1 事件(Event) 事件也就是用户或者浏览器执行的某种动作,而JS与Html之间的交互是通过事件而来的。使用仅在事件发生时执行的**监听器(事件处理程序)**来订阅事件。web浏览器可以发生多种事件,在…

【Linux】yum本地配置

配置将来是在干什么? yum会根据/etc/yum.repos.d/该路径下面的配置文件,来构成自己的下载路径,(根据OS版本,根据你要下载的软件),yum帮助我们下载,安装 一般的机器,内置…

10.常用统计分析方法——主成分分析和因子分析

基础知识: 主成分分析概念 主成分分析PCA:是一种数据降维的技巧,将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 在特征选择方法中有一种方法是方差过滤,即如果一个特征的方差很小&#xff0c…

强化学习:MuJoCo机器人强化学习仿真入门(1)

声明:我们跳过mujoco环境的搭建,搭建环境不难,可自行百度 下面开始进入正题(需要有一定的python基础与xml基础): 下面进入到建立机器人模型的部分: 需要先介绍URDF模型文件和导出MJCF格式 介绍完…

Flink中的时间和窗口(时间语义,水位线,窗口,迟到数据的处理)

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

Adobe XD 55.2.12.2软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! Adobe XD 55.2.12.2是一款专业级的图形界面UI/UX设计工具,拥有丰富的功能和强大的性能。它集成了原型设计、界面设计和交互设计等多种功能…

面试篇-大厂的面试流程和面试注意事项

以前找工作的时候,对于流程中的面试总是好奇流程走到哪一步了,这一轮面试有没有通过,后面不通过还有没有消息通知等问题。今天作为一个求职者和面试官的身份来主要讲一下大厂招聘,内部的面试过程以及流转的流程是什么样的以及该注…

高性能跨平台网络通信框架 HP-Socket v5.9.5

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4478351216.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v5.9.5 更新 一、主要更新 问题修复:由于 v5.9.4 版本升级了 KCP 导致 UDP AR…