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.hqwc.cn/news/414865.html

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

相关文章

大模型学习与实践笔记(六)

一、finetune 简介 两种微调模式:增量预训练 与指令跟随 1.增量预训练 2.指令微调 二、LoRA 与 QLoRA 介绍 三、XTuner 介绍 四、低显存玩转LLM的方法

【Flink-CDC】Flink CDC 介绍和原理概述

【Flink-CDC】Flink CDC 介绍和原理概述 1)基于查询的 CDC 和基于日志的 CDC2)Flink CDC3)Flink CDC原理简述4)基于 Flink SQL CDC 的数据同步方案实践4.1.案例 1 : Flink SQL CDC JDBC Connector4.2.案例 2 : CDC Streaming ETL…

OR-343,IGBT驱动光耦,替代ACPL-W343,TLP5702等

OR-343 具有MOSFET高输入阻抗和GTR低导通压降特性提供隔离反馈 高隔离电压 4.0 A 最大峰值输出电流 3.0 A 最小峰值输出电流 工业温度范围:–40C 至 105C 宽工作 VCC 范围 特征 轨到轨输出电压 。 带迟滞的 LED 电流输入 ICC(最大值&#xff…

Ubuntu下将nvidia-smi封装为GUI界面,实时查看显卡信息

和win系统不同的是,在Ubuntu端,系统级的系统监视器中,只能查看内存、CPU和网络状态,并不能查看GPU状态 而使用NVIDIA显卡的朋友都知道一条指令 nvidia-smi 在终端运行后即可查看显卡信息、资源占用情况等 但是这样会占用终端&am…

C Primer Plus 第6版 编程练习 chapter 16

文章目录 1. 第1题1.1 题目描述1.2 编程源码1.3 结果显示 2. 第2题2.1 题目描述2.2 编程源码2.3 结果显示 3. 第3题3.1 题目描述3.2 编程源码3.3 结果显示 4. 第4题4.1 题目描述4.2 编程源码4.3 结果显示 5. 第5题5.1 题目描述5.2 编程源码5.3 结果显示 6. 第6题6.1 题目描述6.…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 理论题

竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防护(180 分钟,300 分)。 2.第二阶段:模块二…

新手也能看懂的【前端自动化测试入门】!

前言 最近在网上搜索前端自动化测试相关的文档,但是发现网上的文章都是偏使用,没有把一些基础概念说清楚,导致后续一口气遇到一些karma、Jasmine、jest、Mocha、Chai、BDD等词汇的时候很容易一头雾水,这次一方面整理一下收获的知…

深入探究 JavaScript 中的 String:常用方法和属性全解析(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

问题解决:No module named ‘apex‘,apex安装

最近Git了一个别人的程序,跑的过程中遇到了报错: No module named apex 关于Apex,官方介绍是:该资源库包含英伟达维护的实用程序,用于简化 Pytorch 中的混合精度和分布式训练。这里的部分代码最终将被纳入 Pytorch …

某ttEncrypt算法的简单分析

捣鼓背景 其实就是今晚无聊整个乐子打发一下时间了吧??? - - 害,真实的原因是发现身边的大佬不是已经分析完某x了,就是在分析的路上了。再不跟上大佬的步伐,估计以后车尾灯都看不到了,再想抱…

【卡梅德生物】第一弹:关于慢病毒的介绍

慢病毒(Lentivirus)属于逆转录病毒的一种。包括人免疫缺陷病毒(HIV),常见的有HIV-1和HIV-2两个亚型、猫免疫缺陷病毒(FIV)、猿免疫缺陷病毒(SIV)、牛免疫缺陷病毒&#x…

Html+Css+JavaScript实现完整的轮播图功能

概要 这个案例具备常见轮播图完整的功能,大家可以根据自己的需求去修改; 代码可以直接复制运行,需要安装sass 主要功能: (1)鼠标移入轮播图,左右两边的按钮出现,离开则隐藏按钮&a…