Git的介绍和命令汇总

目录

一、git介绍

1、git的工作区域

2、git中文件的四种状态

二、常用命令

1、基础命令

2、提交类命令

3、删除类命令

4、分支类相关命令

5、 查看类相关命令

6、撤销类命令


一、git介绍

1、git的工作区域

        在Git中,有四个工作区域:工作区域(Working Directory)、暂存区(Stage/Index)、本地仓库(Repository)、远程仓库(Remote Directory)。如下图:

每个区域的作用如下:

  • 工作区(Working Directory):当前项目的目录,其中包含了正在编辑的文件和子目录。在Git中,工作区并不属于Git版本控制系统的一部分,因此Git不会主动跟踪工作区中的文件变化。
  • 暂存区(Staging Area):也称为索引(Index),是Git版本控制系统中用于暂存文件更改的区域。当使用git add命令将修改的文件添加到暂存区后,Git就会开始跟踪这些文件的更改,并准备将这些更改提交到本地仓库。
  • 本地仓库(Local Repository):是指存储在本地计算机上的Git版本库,其中包含了项目的完整历史记录。当使用git commit命令将暂存区中的文件更改提交到本地仓库时,Git会将这些更改保存到本地仓库中。
  • 远程仓库(Remote Repository):是指存储在远程服务器上的Git版本库,通常是用于协作开发的。通过git push命令将本地仓库中的代码推送到远程仓库中,或使用git pull命令将远程仓库中的代码拉取到本地仓库中。

        当我们对项目中的一个文件进行修改时,Git会将这些更改保存在工作区中。如果需要将这些更改提交到本地仓库中,则使用git add命令将更改添加到暂存区,然后使用git commit命令将暂存区中的更改提交到本地仓库中。如果与其他人协作开发项目时,可以将本地仓库中的更改推送到远程仓库中,也可以将远程仓库中的更改拉取到本地仓库中。在这个过程中,工作区、暂存区、本地仓库和远程仓库分别扮演了不同的角色,共同构成了Git版本控制系统的核心框架。

2、git中文件的四种状态

git中文件有四种状态:未跟踪(Untrack)、未修改(Unmodified)、已修改(Modified)、已暂存(Staged)。

 各状态描述如下:

  • 未跟踪(Untrack):此文件在文件夹中但并没有加入到git库,不参与版本控制,通过git add状态变为Staged。
  • 未修改(Unmodified):文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处:如果被修改,而变成Modified;如果使用git rm移除版本库,则成为Untrack文件。
  • 已修改(Modified):仅仅是修改,并没有进行其他操作,这个文件也有两个去处:如果通过git add可进入Staged状态;如果使用git checkout则丢弃修改内容,返回Unmodified状态,这个git checkout即从库中去除文件,覆盖当前修改。
  • 已暂存(Staged):通过 git commit 将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodified状态,执行git reset HEAD fileName暂存,文件状态为Modified。

二、常用命令

1、基础命令

命令说明
git --version查看git版本
git config --global user.name 用户名设置用户名
git config --global user.email 密码设置密码
git config --global --list查看全局配置
git init初始化本地仓库
git status 查看仓库的状态
git clone将远程版本库拷贝到本地,创建一份独立的本地版本库,git 可以接受 http 和 ssh 两种协议的地址

2、提交类命令

命令说明
git add添加文件到暂存区。可以使用通配符,例如: git add *.java,也可使用目录,例如:git add .
git commit提交(只提交暂存区中的呢内容,不会提交工作区中的内容)
git push将本地库内容推送到远程版本库

3、删除类命令

命令说明
git rm readme.txt不但从暂存区中删除,同时删除物理文件
git mv a.txt b.txt把 a.txt 改名为 b.txt
git rm --cached readme.txt只从暂存区中删除,保留物理文件

4、分支类相关命令

命令说明
git branch dev创建分支
git branch -d dev删除分支
git checkout dev切换分支
git merge dev合并分支
git branch查看所有分支
git fetch同步本地库和远程库的分支

5、 查看类相关命令

命令说明
git log查看提交日志
git diff对比工作区和暂存区文件的差异 
git diff --cached显示暂存区(已 add 但未 commit 文件)和最后一次 commit (HEAD)之间差异
git ls-files --stage检查保存在暂存区 的文件

6、撤销类命令

命令说明
git reset --soft仅仅移动当前 Head 指针,不会改变工作区和暂存区的内容
git reset --hard reset 的默认参数,移动 head 指针,改变暂存区内容,但不会改变工作区 
git reset --mixed当前 head 指针、工作区和暂存区内容全部改变

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

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

相关文章

CorelDRAW Graphics Suite2024完整版最新功能介绍

CorelDRAW平面设计软件通常也被叫做CDR,CDR广泛应用于排版印刷、矢量图形编辑及网页设计等领域。通过CorelDRAW体验极具个性的自由创作,大胆展现真我,交付出众的创意作品。CorelDRAW拥有矢量插图、页面布局、图片编辑和设计工具,无…

迅为RK3568开发板RTMP推流之视频监控

1 搭建 RTMP 媒流体服务器 nginx-rtmp 是一个基于 nginx 的 RTMP 服务模块,是一个功能强大的流媒体服务器模块, 它提供了丰富的功能和灵活的配置选项,适用于构建各种规模的流媒体平台和应用。无论是搭建实时视频直播平台、点播系统或多屏互…

leetcode 114. 二叉树展开为链表

2023.10.22 本题第一反应就是将 原二叉树的节点值 用先序遍历的方式保存到一个集合数组中。然后再重新构造出新的二叉树。 java代码如下: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode rig…

我国跨境电商行业研究报告(2022)

我国跨境电商行业研究报告 我国跨境电商规模突飞猛进,2022年进出口规模超2万亿元,2023年上半年跨境电商出口8210亿元,增长19.9%。全国跨境电商主体已超10万家,近年来涌现出一批上市公司,以及广州希音等全球独角兽企业。…

curl命令服务器上执行http请求

1. 现在本地使用postman生成curl命令 注意: 将ip改成127.0.0.1,端口是实际服务运行的端口 curl --location --request POST http://127.0.0.1:63040/content/course/list?pageNo1&pageSize2 \ --header Content-Type: application/json \ --data-raw {"courseName&q…

GO学习之 goroutine的调度原理

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

JavaSE入门---掌握面向对象三大特性:封装、继承和多态

文章目录 封装什么是封装?如何实现封装? 继承什么是继承?继承的语法父类成员访问子类访问父类的成员变量子类访问父类的成员方法 认识super关键字认识final关键字子类的构造方法super VS this在继承关系中各代码块的执行顺序是怎样的&#xf…

数据可视化与GraphQL:利用Apollo创建仪表盘

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

YOLO目标检测——人脸识别数据集【对应voc、coco和yolo三种格式标签】

实际项目应用:安全监控、智能驾驶、人机交互、人脸门禁、人脸支付、人脸搜索数据集说明:人脸识别数据集,真实场景的高质量图片数据,数据场景丰富,含有人脸图片标签说明:使用lableimg标注软件标注&#xff0…

PHP 基础

PHP 基础 概述 在PHP 文件中&#xff0c;可以与HTML 和JavaScript 混编。 开始标记<?php 表示进入PHP 模式&#xff0c;结束标记?>&#xff0c;标识退出PHP 模式。 PHP 模式之外的内容会被作为字符输出到浏览器中。 PHP 在服务端执行&#xff0c;HTML 和 JS 在浏览…

【iOS】UITableView总结(Cell的复用原理、自定义Cell、UITableViewCell协议方法)

UITableView 列表的特点&#xff1a; 数据量大样式较为统一通常需要分组垂直滚动通常可视区只有一个 -> 视图的复用 UITableViewDataSource UITableView作为视图&#xff0c;只负责展示&#xff0c;协助管理&#xff0c;不管理数据 需要开发者为UITableView提供展示所需…

登上抖音热搜榜:如何让你的内容火爆全网

在当今信息爆炸的时代&#xff0c;抖音已经成为了很多人获取信息、娱乐和社交的重要平台。每一天&#xff0c;都有大量的短视频在抖音上诞生&#xff0c;然而&#xff0c;只有少数幸运儿能够登上抖音热搜榜&#xff0c;成为万人瞩目的焦点。那么&#xff0c;如何让你的内容火爆…

Go并发编程之四

一、前言 今天我们介绍一下Go并发编程另外一个重要概念【多路复用】&#xff0c;多路复用最开始是在网络通讯领域&#xff08;硬件&#xff09;应用&#xff0c;指的是用同一条线路承载多路信号进行通信的方式&#xff0c;有频分多路复用、时分多路复用等等技术&#xff0c;然…

MySQL日志 错误日志 二进制日志 查询日志 慢查询日志

一、错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&#xff0c;默认存放目录/var/log/,默认的日志文件名…

2019年亚太杯APMCM数学建模大赛A题基于图像分析的二氧化硅熔化表示模型求解全过程文档及程序

2019年亚太杯APMCM数学建模大赛 A题 基于图像分析的二氧化硅熔化表示模型 原题再现 铁尾矿的主要成分是二氧化硅&#xff0c;而二氧化硅是铁尾矿成分中最难熔化的部分。因此&#xff0c;铁尾矿的熔融行为可以用二氧化硅的熔融行为来表示。然而&#xff0c;高温熔池的温度超过…

Jmeter的性能测试

性能测试的概念 定义&#xff1a;软件的性能是软件的一种非功能特性&#xff0c;它关注的不是软件是否能够完成特定的功能&#xff0c;而是在完成该功能时展示出来的及时性。 由定义可知性能关注的是软件的非功能特性&#xff0c;所以一般来说性能测试介入的时机是在功能测试…

Python---练习:while循环嵌套(用两次while三步走--里外各一次)

1、循环嵌套的引入 案例&#xff1a; 有天女朋友又生气了&#xff0c;惩罚&#xff1a;说3遍“老婆大人&#xff0c; 我错了”&#xff0c;这个程序是不是循环即可&#xff1f;但如果女朋友说&#xff1a;还要刷今天晚饭的碗&#xff0c;这个程序怎么书写&#xff1f; 思考&…

MOSFET(五):DrMos

一、简介 DrMos&#xff08;Driver MOSFET&#xff09;技术是 Intel 于2004年推出的服务器主板节能技术&#xff0c;即把 2 个MOSFET和 1 个MOS驱动器 三合一&#xff0c;集成在一个封装中。集成后的 DrMos 面积是分离MOSFET的 &#xff0c;功率密度是其 倍&#xff0c;通过搭…

android 13/14高版本SurfaceFlinger出现VSYNC-app/VSYNC-appSf/VSYNC-sf剖析

问题背景&#xff1a; 了解surfaceflinger的vsync同学都可能知道vsync属于一个节拍器&#xff0c;主要用来控制有节奏的渲染&#xff0c;不至于会产生什么画面撕裂等现象。 一般vsync都有会有2部分&#xff1a; app部分vsync&#xff0c;控制各个app可以有节奏的上帧 surfacef…

UVM-什么是UVM方法学

概念简介 百度对UVM的解释如下&#xff1a; 通用验证方法学&#xff08;Universal Verification Methodology, UVM&#xff09;是一个以SystemVerilog类库为主体的验证平台开发框架&#xff0c;验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境 UVM…