Git的介绍和命令汇总

news2024/11/20 12:41:15

目录

一、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.coloradmin.cn/o/1120162.html

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

相关文章

k8s认证

1. 证书介绍 服务端保留公钥和私钥,客户端使用root CA认证服务端的公钥 一共有多少证书: *Etcd: Etcd对外提供服务,要有一套etcd server证书Etcd各节点之间进行通信,要有一套etcd peer证书Kube-APIserver访问Etcd&a…

算法学习之 背包01问题 , 备战leecode

来看题目 我们分析一下题目&#xff0c;首先我们要排序&#xff0c;这有助于我们得到最大的值&#xff0c;我们要得到一个递推公式 代码如下: class Solution { public:int maxSatisfaction(vector<int>& satisfaction) {int n satisfaction.size();vector<v…

【数据结构复习之路】串 (超详细讲解) 严蔚敏版

专栏&#xff1a;数据结构复习之路 复习完上面一章【线性表】【栈和队列】&#xff0c;我们接着复习串&#xff0c;这篇文章我写的非常详细且通俗易懂&#xff0c;看完保证会带给你不一样的收获。如果对你有帮助&#xff0c;看在我这么辛苦整理的份上&#xff0c;三连一下啦 目…

42917-2023 消光制品用聚氯乙烯树脂

1 范围 本文件规定了消光制品用聚氯乙烯树脂的分类、技术要求、取样、试验方法、检验规则及标志、随行 文件、包装、运输和贮存。 本文件适用于氯乙烯与交联剂悬浮共聚所制得的用于生产消光制品的聚氯乙烯树脂。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而…

通过高通量测序评估金针菇(双孢蘑菇)生产过程中的微生物演替

1.1 Title:Microbial succession during button mushroom (Agaricus bisporus) production evaluated via high-throughput sequencing 1.2 作者&#xff1a;Ban Ga-Hee 1.3 机构&#xff1a;Ewha Womans University 1.4 期刊&#xff1a;Food Microbiology 1.5 分区/影响因…

连接器信号完整性仿真教程 八

连接器信号完整性仿真主要是解算S参数及与之相关的参数&#xff0c;查看仿真结果相对于HFSS&#xff0c;其操作要简单得多。不需要复杂的操作&#xff0c;基本上左边导航树中&#xff0c;就可直接打开需要查看的仿真结果。下面以B to B Connector仿真结果实例演示&#xff0c;详…

何为心理承受能力?如何提高心理承受能力?

心理承受能力&#xff0c;也可以理解为人的抗压能力&#xff0c;指的是承受压力&#xff0c;承受逆境的能力。人的一生其实就是在不断的解决问题&#xff0c;见招拆招&#xff0c;遇到问题解决问题&#xff0c;在我们不断学习和锻炼的过程中&#xff0c;提高了我们解决问题的效…

Python之解析式和生成器表达式

Python之解析式和生成器表达式 列表解析式 列表解析式List Comprehension&#xff0c;也叫列表推导式。 语法 [返回值 for 元素 in 可迭代对象 if 条件]使用中括号[]&#xff0c;内部是for循环&#xff0c;if条件语句可选返回一个新的列表 列表解析式是一种语法糖 编译器…

Vue中如何处理表单输入验证?

在Vue中,能使用多种方式处理表单输入验证。以下是几种常见的方法: 1:使用Vue的指令和表达式: Vue提供了一些内置的指令和表达式,可以直接在模板中进行表单验证。例如,你可以使用v-model指令结合条件表达式来验证输入内容。 <template><div><input v-mod…

微软官方推出的四款工具,太实用了,值得收藏

目录 一、Officeplus——丰富的办公资源库 二、微软数学求解器 三、微软内置edge浏览器 四、Microsoft To-Do 办公待办神器 所以今天小编给大家分享4个微软官方推出的实用工具&#xff0c;每一个都非常好用&#xff0c;对于大家日常办公&#xff0c;非常有必要&#xff0c;感兴…

【C++深入浅出】C/C++内存管理(教你如何new到对象)

一. 前言 前面我们学习了有关C类和对象的知识&#xff0c;学会了如何构建一个完整的类&#xff0c;这些类都是存储在栈空间上的。在C语言中&#xff0c;我们不仅可以在栈上定义变量&#xff0c;也可以对堆上的空间进行管理&#xff0c;在接下来的几期中&#xff0c;我们的目标就…

idea + Docker-Compose 实现自动化打包部署(仅限测试环境)

一、修改docker.service文件&#xff0c;添加监听端口 vi /usr/lib/systemd/system/docker.service ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock重启docker服务 systemctl daemo…

一个进程最多可以创建多少个线程基本分析

前言 ​话不多说&#xff0c;先来张脑图~ linux 虚拟内存知识回顾 虚拟内存空间长啥样 在 Linux 操作系统中&#xff0c;虚拟地址空间的内部又被分为内核空间和用户空间两部分&#xff0c;不同位数的系统&#xff0c;地址空间的范围也不同。比如最常见的 32 位和 64 位系统&…

四大特性模块(module)

module的动机 C20中新增了四大特性之一的模块(module)&#xff0c;用以解决传统的头文件在编译时间及程序组织上的问题。 modules 试图解决的痛点 能最大的痛点就是编译慢, 头文件的重复替换, 比如你有多个翻译单元, 每一个都调用了 iostream, 就得都处理一遍. 预处理完的源…

muduo异步日志库

文章目录 一、日志库模型参考 一、日志库模型 muduo日志库是异步高性能日志库&#xff0c;其性能开销大约是前端每写一条日志消息耗时1.0us~1.6us。 采用双缓冲区&#xff08;double buffering&#xff09;交互技术。基本思想是准备2部分buffer&#xff1a;A和B&#xff0c;前…

英语——分享篇——每日200词——2601-2800

2601——resistant——[rɪzɪstənt]——adj.抵抗的——resistant——resi热死(拼音)st石头(拼音)ant蚂蚁(熟词)——热死了石头上的蚂蚁还在抵抗——The body may be less resistant if it is cold. ——天冷时&#xff0c;身体的抵抗力会下降。 2602——prospect——[prɒspe…

ubuntu安装后配置

基础配置 查看当前Ubuntu 的版本号 cat /etc/issue 更新软件源&#xff1a; 可以不用再复制黏贴内容了&#xff0c;直接找到Software Updates&#xff0c;Download from 选择china下的阿里云&#xff0c;然后reload就可以了。 更新软件 sudo apt-get update sudo apt-get u…

算法__中缀表达式转后缀表达式

文章目录 概念算法中缀转后缀案例讲解 后缀算值案例讲解 概念 中缀表达式就是日常生活中遇到的运算表达式&#xff0c;例如a*(b-c)&#xff1b; 后缀表达式则是另一种运算表达式&#xff0c;其特点在于运算符在对象后&#xff0c;且表达式中没有括号&#xff0c;例如abc-* 算…

DOM4J解析.XML文件

<?xml version"1.0" encoding"utf-8" ?> <books><book id"SN123123413241"><name>java编程思想</name><author>华仔</author><price>9.9</price></book><book id"SN1234…

发票识别神器推荐,告别繁琐手动录入,轻松管理财务

随着数字化时代的到来&#xff0c;越来越多的企业和个人开始寻求自动化处理各种繁琐任务的方式。其中&#xff0c;发票识别就是一个常见且具有挑战性的任务。发票识别是指将纸质或电子形式的发票转化为结构化的数据&#xff0c;以便进一步处理和分析。在过去&#xff0c;人工进…