【Git】02 仓库、区域与基本操作

news2024/12/22 5:11:14

文章目录

  • 一、Git仓库
  • 二、Git区域
  • 三、操作
    • 3.1 git add
    • 3.2 更改文件名
    • 3.3 清空暂存区
    • 3.4 帮助文档
  • 四、版本历史
    • 4.1 日志时间格式
    • 4.2 查看版本演变历史
  • 五、总结


一、Git仓库

Git仓库,可简单理解为项目代码存放的位置,Git将该项目目录中的内容纳入版本管理。

创建Git仓库,有如下两种场景:
1)把已有的项目代码纳入Git管理(在指定项目目录内初始化)

cd 项目代码所在的目录     # 进入到项目内
git init

2)新建项目直接用Git管理(初始化创建某个项目)

cd 某个文件夹
git init project_name   # 在当前目录下创建项目文件夹
cd project_name

# 设置项目本地local用户信息,其优先级大于global
git config --local user.name 'username'
git config --local user.email 'user@qq.com'

二、Git区域

Git区域分为:工作区、暂存区和版本历史

  • 工作区:正常编辑修改文件的区域
  • 暂存区:通过 git add 将文件添加到暂存区
  • 版本历史:将暂存区里的内容commit到的区域
    在这里插入图片描述

下面以文件readme来做简单示例。
文件创建以及添加内容时,就处在工作区,此时文件还未被管理;
通过git add命令将文件添加到暂存区,即该文件被Git纳入管理;
通过git status命令可查看当前目录中文件的纳管状态;
通过git commit 将暂存区中的内容提交至版本历史中,-m 'desc' 是添加描述;
通过git log 查看当前仓库的版本历史,就是显示之前commit提交的信息,但只显示和HEAD指向分支相关的commit。

git add readme   # 将指定的readme文件放入暂存区

git status       # 查看git状态,提示有个新文件readme被纳入管理,即暂存区
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   readme

git commit -m 'add readme'     # 将暂存区的内容提交至版本历史中
[master (root-commit) b36e3b7] add readme
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 readme

git log       # 查看版本历史,显示刚刚操作的commit记录
commit b36e3b75d6129902a7251ec74b5a14b521c16839 (HEAD -> master)
Author: asdfv1929 <asdfv1929@163.com>
Date:   Mon Aug 1 13:17:59 2022 +0800
    add readme

三、操作

3.1 git add

git add file1 file2  # 同时添加多个文件到暂存区
git add dirname      # 添加目录(包括其中的文件)到暂存区,空目录不行
git add .            # 将仓库内所有涉及修改、新建的文件添加到暂存区(git 2.X版本后,等同于-A)
git add -u           # 将文件的修改、删除,添加到暂存区(即将已被git跟踪纳管的文件添加到暂存区)
git add -A           # 将文件的新建、修改、删除,添加到暂存区
git add -all         # 等同于 -A

3.2 更改文件名

1)常规操作
常见操作是,先重命名文件,之后git add将其添加至暂存区,最后删除旧文件名

mv readme readme.md
git status
git add readme.md
git rm readme

2)git方式重命名文件

git mv readme readme.md
git commit -m 'mv name'

大小写区分:

git mv readme Readme

git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   Readme

3.3 清空暂存区

git reset --hard

git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

3.4 帮助文档

git help --web log    # 网页查看帮助文档log

在这里插入图片描述

四、版本历史

4.1 日志时间格式

git log
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date:   Wed Nov 8 15:29:01 2023 +0800

    add readme

git log --date=format:%Y-%m-%d\ %H:%M:%S
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date:   2023-11-08 15:29:01

    add readme

git log --date=iso
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date:   2023-11-08 15:29:01 +0800

    add readme

git log --date=short
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date:   2023-11-08

    add readme

git log --pretty="%H" --committer="asdfv1929" --after="2020-01-01" --before="2023-12-30"
1395813160b9b8f42f8a42f84eb7845fdfaf0424

git log --pretty="%H" --committer="asdfv1929" --after="2020-01-01" --before="2023-12-30" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done
readme

4.2 查看版本演变历史

# 以单行形式显示版本历史,只显示编号、信息
git log --oneline
b36e3b7 (HEAD -> master) add readme

# -n4,显示最新4条历史信息
git log -n4 --oneline
b36e3b7 (HEAD -> master) add readme

# 新建分支,可基于commit哈希ID或已有分支名称
git checkout -b temp 7d1a828cc     # 7d1a828cc是commit编号的前面一部分,即从该commit提交点新建分支出来,命名为temp

# 查看分支信息
git branch -v
master c7ce7a1 add css
* temp   a6db737 add branch

# 查看所有,git log默认只显示当前分支的所有commit信息,若想查看所有分支的log,则需加上--all选项
git log --all

git log --oneline --all -4 --graph

# 以图形查看所有分支走向,如下图(路径走向由不同颜色标明)
git log --all --graph

在这里插入图片描述

五、总结

本文的几个点在日常学习工作中是会经常用到的:创建仓库、添加至暂存区、提交版本,这几个步骤是在项目的版本管理中必不可少的环节,需常用常记。版本历史也很重要,能快速掌握项目的迭代动向。

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

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

相关文章

【Java基础】之进程与线程

进程与线程 1. 线程与进程1.1 概念1.2 区别与联系 2. 线程的5种状态和切换2.1 简单介绍2.2 状态切换2.2.1 重点情况 3. 线程中常见的方法4. 线程池 1. 线程与进程 1.1 概念 进程&#xff1a;资源分配的基本单元&#xff0c;如QQ音乐 线程&#xff1a;资源调度的基本单元&…

构建基于Flask的跑腿外卖小程序

跑腿外卖小程序作为现代生活中的重要组成部分&#xff0c;其技术实现涉及诸多方面&#xff0c;其中Web开发框架是至关重要的一环。在这篇文章中&#xff0c;我们将使用Python的Flask框架构建一个简单的跑腿外卖小程序的原型&#xff0c;展示其基本功能和实现原理。 首先&…

React中文官网已经搬迁了,原网址内容将不再更新

注意1&#xff1a;React中文官网已经搬迁至-React 官方中文文档&#xff0c;原网址内容将不再更新 注意2&#xff1a;React官网已经将React的定义由“用于构建用户界面的 JavaScript 库”更改为“用于构建 Web 和原生交互界面的库”。

网易砸10亿造《射雕》,能盘活武侠游戏市场吗?

​网易游戏的2024年,注定是特殊的一年。 在乙游《世界之外》出尽风头的同时,网易有史以来投入最大的武侠游戏《射雕》进行了公测前的最后一次测试,新角色PV陆续公布,宣发也在逐步推进。 这款由网易梦幻事业部战魂工作室研发的全新大世界武侠冒险RPG,可谓是来势汹汹,官方…

python 写入csv文件 内容乱码

问题 python 写入csv文件 内容乱码 详细问题 笔者核心代码 import csv # 将数据写入 CSV 文件 csv_file_path "soil_data.csv" header ["经度", "纬度", "土壤类型", "pH值"]with open(csv_file_path, mode"w&q…

银行数据仓库体系实践(10)--汇总指标层和集市模型设计

建立多层次的数据访问服务体系&#xff0c;有力提升数据仓库的价值。基于指标汇总层、集市层、可以提供面向业务人员的即席数据查询、以及面向应用开发者的数据接口、应用访问接口&#xff0c;满足不同类型应用的需要。 1、汇总指标层模型设计原则及步骤 1.1建设目标&#xff…

【Android】高仿京东三级类型列表Demo

本demo基于二级分类双列表联动Demo进行了改进&#xff0c;高仿实现了京东的三级类型列表。 京东的如图&#xff1a; 本demo的&#xff1a; 改进之处 实现了三级列表联动&#xff0c;二三级列表之间的滑动监听优化了一下&#xff0c;将二级类型选中交予自身的点击事件&#…

【采购指南】国产芯片产业现状及采购建议

随着全球技术的飞速发展&#xff0c;芯片成为现代电子设备不可或缺的核心部分。中国作为全球最大的电子产品制造国&#xff0c;其芯片制造业也在经历快速的发展。近年来&#xff0c;国产芯片因技术进步、支持政策和市场需求不断提升&#xff0c;其在国内外市场的份额和影响力也…

C#小结:ScottPlot 5.0在VS2022桌面开发的应用(以winform为例)

目录 一、官网文档地址 二、在VS2022中安装Scottplot 三、拖动Scottplot 四、使用Scottplot 五、效果图 一、官网文档地址 官网地址&#xff1a;ScottPlot 5.0 食谱 本文内容来自于官网&#xff0c;选取了官网的一些比较好用的功能展示&#xff0c;如需学习更多功能&a…

【安装记录】Proxmox VE 8.0 安装

PVE(Proxmox VE) 下载地址&#xff1a;https://www.proxmox.com/en/downloads 2、安装 rufus &#xff08;1&#xff09;官网下载&#xff1a;https://rufus.ie/zh/ &#xff08;2&#xff09;打开即可使用&#xff1a; 3、使用 rufus 制作启动盘 (1)如果你的u盘之前被制作为…

Nginx 本地部署vue项目

1、 下载 Nginx 稳定版本 2、下载安装后&#xff0c;打开 nginx.conf配置文件 3、找到打包好的文件&#xff0c;并配置运行文件 文件的位置 root C:/server/build location /{root C:/server/build;index index.html index.htm;#解决刷新后nginx报404问题try_files $uri …

HarmonyOS-UIAbility组件概述及生命周期

UIAbility组件概述 概述 UIAbility组件是一种包含UI界面的应用组件&#xff0c;主要用于和用户交互。 UIAbility组件是系统调度的基本单元&#xff0c;为应用提供绘制界面的窗口&#xff1b;一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例…

【数据结构】链表(单链表实现+测试+原码)

1.链表 1.1 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 现实中&#xff1a;链表就像是一列动车&#xff0c;一节连着一节 数据结构中的链表 注意: 1.从上图可看出…

微信小程序(二十五)条件判断语句与结构隐藏

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.条件判断语句的演示 2.隐藏结构的演示 源码&#xff1a; index.wxml <view><!-- wx:if和wx:else为条件判断语句 --><text wx:if"{{isLogin}}">已登入的用户</text><tex…

Maven基本使用

Maven简介: Apache Maven 是一个项目管理和构建工具&#xff0c;它基于项目模型(POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建&#xff0c;报告和文档 Maven的作用: (1&#xff09;项目搭建&#xff1b; &#xff08;2&#xff09;依赖管理&#xff1b; &#xf…

7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ&#xff0c;包含对 RibbitMQ 的架构介绍、应用场景、坑点解析以及代码实战。 我将使用 waynboot-mall 项目作为代码讲解&#xff0c;项目地址&#xff1a;https://github.com/wayn111/waynboot-mall。本文大…

Unity之做一个最简单的FPS游戏demo

目录 &#x1f60b;FPS游戏Demo &#x1f4a4;1.新建FPS模板项目 ⚒️2.装备枪 &#x1f4a3;3.设置射击功能 &#x1f4fa;4.制造一个子弹预制体 &#x1f3ae;5.发射子弹 说起来小编学Unity差不多一个月了&#xff0c;都是利用上班摸鱼时间学的&#xff08;doge.jpg&…

【3万块指令免费送】Evol-Instruct 应用:扩充大模型数据多样性

Evol-Instruct 应用&#xff1a;扩充大模型数据多样性 提出背景流程步骤总结Evol-Instruct 代码复现Evol-Instruct 应用&#xff1a;扩充大模型数据多样性 提出背景 论文&#xff1a;https://arxiv.org/pdf/2304.12244.pdf 代码&#xff1a;https://github.com/nlpxucan/Wiza…

如何提高思维能力,洞悉事物本质?(二)

在上一篇文章里&#xff0c;我们分享了几个简单、有效的思维模型。 这一篇&#xff0c;会继续探讨这个话题&#xff0c;向大家介绍几个常用的思维模型。 今天的主题是「找本质」。 大多数问题&#xff0c;当我们思考和讨论的时候&#xff0c;许多人常犯的错误&#xff0c;其实是…

【Redis】实现购物秒杀及分布式锁

Redis实现购物秒杀及分布式锁 全局唯一ID Redis自增ID策略 ID构造是:时间戳 + 计数器 每天一个key,方便统计订单量 业务实现 获取指定时间的秒数 LocalDateTime timeBegin = LocalDateTime.of(2024, 1, 1, 0, 0, 0); long second = timeBegin.toEpochSecond(ZoneOffset…