1.Git是用来干嘛的

news2024/11/25 19:57:10

本文章学习于【GeekHour】一小时Git教程,来自bilibili

Git就是一个文件管理系统,这样说吧,当多个人同时在操作一个文件的同时,很容易造成紊乱,git就是保证文件不紊乱产生的

包括集中式管理系统和分布式管理系统

听懂了,集中式管理系统就是从中央服务器上下载最新的版本文件,修改文件之后将 文件上传到中央管理系统,然后中央管理系统得到你更改之后的文件

缺点:中央服务器出现问题所有人都无法工作

都有一个完整的版本库,不需要网络就可以直接在本地修改

当需要把文件分享给其他人的时候,只需要把仓库互相同步一下就行了

git就是分布式的

如何新建一个管理库

将仓库理解为一个目录,这个目录下的所有文件的修改,删除,git都可以追踪到,这样我们就可以恢复到之前的版本

git init:在本地上面创建一个文件夹

git clone:直接从github上克隆一个项目,会生成一个文件夹

windows系统下bash的操作

ls -a是用来检测git文件是否存在,是仓库是否创建成功的标志

可以通过以上命令来观察git文件的内容,但是不要轻易修改

现在我们返回到之前的文件夹,然后我们通过 \rm -rf .git 将git文件删除掉,然后我们在当前文件夹 下面重新创建了一个my-repo的文件夹,并且以这个为仓库继续执行(my-repo中有我们的.git)

之后我们进入我们的my-repo文件夹并且检索文件中是否含有.git

Git的工作区域和文件状态

工作区:就是我们电脑上的目录 .git所在的目录

暂存区:用于保存即将提交到github上的修改内容 .git/index所在

本地仓库:通过git init 创建的那个仓库

当我们的代码文件到达一定阶段之后,我们需要保存在本地仓库

如果我们每次修改一次文件就提交的话,会比较麻烦,所以我们先将我们将要提交的文件保存在暂存区中,然后某一阶段结束之后,再统一提交到本地仓库中

通过以上几个命令创建一个文件(在git文件所在的文件夹中打开git bash)

现在我们的file1.txt目前在工作区,现在我们将他载入到暂存区

然后我们的文件file变成了绿色,表示现在这个文件已经被添加到了暂存区,等待被提交

看绿色文件上方的文字

git rm 表示我们可以通过这个命令来取消暂存

git commit只会提交暂存区中的文件,而不会提交工作区的其他文件

接着我们提交file1这个文件

之后我们添加了几个文件,这些文件用来演示git add多个文件的操作

值得注意的是ls命令会把所有工作区中(包括已提交)的文件显示出来

只有看git status才知道有没有放到暂存区,或者已经提交了

我们接着使用git add *.txt将文件提交到本地仓库中

txt文件全部提交

使用git . 可以该文件夹下的所有文件都提交到暂存区中

这里的 . 表示当前目录

如果我们使用git commit就会进入到交互页面,交互页面是一个vs的界面

使用方向键 来移动光标

使用i键进入编辑模式

输入提交信息

之后esc键回到命令模式

输入:wq命令保存退出

可以看到所有文件都已经提交完成了

使用git log 来查看提交记录,可以看到我们的两次提交

每次提交都有一个提交id

以及提交的作者和邮箱id

还有日期

可以使用git log --oneline 来展示简介的提交记录

让我们总结一下:

  • git status 查看仓库的状态

  • git add 提交到暂存区

  • git commit 提交 ——只提交暂存区的内容,不会提交工作区

  • git log 查看仓库提交历史记录——可以使用 log -- oneline来查看简介的提交记录

git reset

reset命令用于提交版本,可以用于回到之前的某个提交的状态

git reset的三种模式

git reset --soft表示回退到某个版本,并且保存工作区和暂存区的所有修改内容

git reset -- hard表示回退到某个版本,并且丢弃工作区和暂存区的所有修改内容

git reset --mixed表示回退到某个版本,并且只保存工作区 的修改内容并且丢弃暂存区的修改内容

首先我们重新回到learn_git的开始部分

然后重新创建一个空的带有git的文件夹,相当于工作区

然后我们加入了三个文件

接着分别提交

我们首先打开一个新的终端(还是bash)

接着我们将这个文件夹复制三份 分别来执行三种不同的soft命令

然后我们使用soft命令回退到之前的状态,

这是之前提交的状态码

我们可以注意到file3并没有添加到暂存区,这是因为我们回退到了第二个版本

我们接着我们的实验,进入到hard文件夹下面

使用reset hard进入到之前的状态

然后我们进行检测

lsb表示工作区的内容,git ls-files表示暂存区的内容

接着做那个git reset

谨慎使用git reset--hard 这个命令,不过使用了其实也没什么关系

不过如果使用了也没有关系,因为我们可以回退

这个时候我们可以发现通过这个标号,我们成功回退到了之前的状态

git diff

查看工作区、暂存区、本地仓库之间的差异

git diff 如果后面什么也不加,会默认比较工作区和暂存区之间的内容

我们以修改file3.txt文件为例子

第一行显示的是哪个文件改变了

第二行展示的是文件的哈希值 后面的10064表示的是文件的权限

接着我们提交,然后再次检测git diff 可发现没有发现异常

将我们的暂存区和本地仓库的区别也可以显现出来

使用git diff HEAD 命令即可比较工作区和本地仓库之间的差异

使用git diff --cached可以比较暂存区和本地仓库之间的差异

图片没有保存到本地,下次我注意一下

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

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

相关文章

每日一题:用c语言写(输入n个数(n小于等于100),输出数字2的出现次数)

目录 一、要求 二、代码 三、结果 ​四、注意 一、要求 二、代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {//输入n个数&#xff08;n小于等于100&#xff09;&#xff0c;输出数字2的出现次数;int n[100] ;int num 0;int count 0;/…

加域报错:找不到网络路径

在尝试将计算机加入Windows域时&#xff0c;如果收到“找不到网络路径”的错误提示&#xff0c;可能的原因及解决方法如下&#xff1a; 网络连接问题&#xff1a;确保计算机与域控制器之间的物理网络连接是正常的&#xff0c;可以通过ping命令测试与域控制器的连通性。例如&…

【黑马头条】-day05延迟队列文章发布审核-Redis-zSet实现延迟队列-Feign远程调用

文章目录 昨日回顾今日内容1 延迟任务1.1 概述1.2 技术对比1.2.1 DelayQueue1.2.2 RabbitMQ1.2.3 Redis实现1.2.4 总结 2 redis实现延迟任务2.0 实现思路2.1 思考2.2 初步配置实现2.2.1 导入heima-leadnews-schedule模块2.2.2 在Nacos注册配置管理leadnews-schedule2.2.3 导入表…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路&#xff0c;&#xff08;手势控制的LED灯&#xff09; 原理 通过红外线对管&#xff0c;IC搭建的电路&#xff0c;实现灯模式转换。 手势控制灯模式转换&#xff0c;详细说明 转载 1《三色调光LED台灯电路》&#xff0c…

大数据学习第十一天(复习linux指令3)

1、su和exit su命令就是用于账户切换的系统命令 基本语法&#xff1a;su[-] [用户名] 1&#xff09;-表示是否在切换用户后加载变量&#xff0c;建议带上 2&#xff09;参数&#xff1a;用户名&#xff0c;表示切换用户 3&#xff09;切换用户后&#xff0c;可以通过exit命令退…

Redhat 7.9 安装dm8配置文档

Redhat 7.9 安装dm8配置文档 一 创建用户 groupadd -g 12349 dinstall useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba二 创建目录 mkdir /dm8 chown -R dmdba:dinstall /dm8三 配置/etc/security/limits.conf dmdba soft nproc 163…

二叉树结点关键字输出的递归算法实现

在计算机科学中&#xff0c;二叉树是一种重要的数据结构&#xff0c;广泛应用于各种算法和程序设计中。二叉树的遍历是二叉树操作中的基础问题之一&#xff0c;其目的是以某种规则访问二叉树的每个结点&#xff0c;使得每个结点被且仅被访问一次。给定一个具有n个结点的二叉树&…

idea端口占用

报错&#xff1a;Verify the connector‘s configuration, identify and stop any process that‘s listening on port XXXX 翻译&#xff1a; 原因&#xff1a; 解决&#xff1a; 一、重启大法 二、手动关闭 启动spring项目是控制台报错&#xff0c;详细信息如下&#xff…

C++的并发世界(四)——线程传参

1.全局函数作为传参入口 #include <iostream> #include <thread> #include <string>void ThreadMain(int p1,float p2,std::string str) {std::cout << "p1:" << p1 << std::endl;std::cout << "p2:" <<…

css3之动画animation

动画animation 一.优点二.定义和使用三.动画序列和解释四.常见属性及解释1.常见属性及应用2.速度曲线细节 五.简写&#xff08;名字和时间不能省略&#xff09;&#xff08;持续时间在何时开始的时间前&#xff09;&#xff08;简写中无animation-play-state)六.例子1.大数据热…

图神经网络实战(7)——图卷积网络(Graph Convolutional Network, GCN)详解与实现

图神经网络实战&#xff08;7&#xff09;——图卷积网络详解与实现 0. 前言1. 图卷积层2. 比较 GCN 和 GNN2.1 数据集分析2.2 实现 GCN 架构 小结系列链接 0. 前言 图卷积网络 (Graph Convolutional Network, GCN) 架构由 Kipf 和 Welling 于 2017 年提出&#xff0c;其理念是…

HCIA-RS基础-以太网设备工作原理

目录 以太网设备工作原理1. HUB 的工作原理2. L2 交换机的工作原理3. L3 交换机的工作原理 总结 以太网设备工作原理 以太网是一种常用的局域网技术&#xff0c;用于在计算机网络中传输数据。在以太网中&#xff0c;有几种常见的设备&#xff0c;包括 HUB、L2 交换机和 L3 交换…

Java入门学习Day04

本篇文章主要介绍了&#xff1a;如何输入数据、字符串拼接、自增自减运算符、类型转换&#xff08;int&#xff0c;double等&#xff09; CSDN&#xff1a;码银 公众号&#xff1a;码银学编程 一、键盘输入练习 Scanner是Java中的一个类&#xff0c;用于从控制台或文件中读…

java学习3

目录 面向对象——多态 什么是多态 多态的前提 多态有什么好处&#xff1f; 包 1.包的作用? 2.包名书写的规则? 3.什么时候需要导包?什么时候不需要导包? final 修饰符 权限修饰符 4种权限修饰符的范围 抽象方法和抽象类 接口 接口的定义和使用 接口中成员的特点…

JavaScript变量对象详解

正文 在JavaScript中&#xff0c;变量对象是执行上下文中的一个重要概念&#xff0c;它负责存储函数中的变量、函数声明和形参。了解变量对象对于理解JavaScript的作用域、作用域链以及变量的声明和提升至关重要。 1. 变量对象的定义 变量对象是在执行上下文创建阶段被创建的&a…

【前端面试3+1】04浏览器存储、flex布局属性和常用指令、 promise和async await区别、【验证回文串】

一、浏览器存储 1.1类型&#xff1a; 浏览器数据存储的方式有以下几种&#xff1a; Cookie&#xff1a;小型文本文件&#xff0c;存储在用户计算机上&#xff0c;可以通过浏览器传输到服务器。Web Storage&#xff1a;包括LocalStorage和SessionStorage&#xff0c;可以在浏览器…

【JavaEE初阶系列】——一万字带你了解 JUC常见类 以及 线程安全集合类(哈希表)

目录 &#x1f6a9;JUC(java.util.concurrent) 的常见类 &#x1f388;Callable 接口 &#x1f308;理解 Callable(相关面试题) &#x1f308;理解 FutureTask &#x1f4dd;线程创建方式 &#x1f388; ReentrantLock可重入锁 &#x1f308;ReentrantLock 优势&#x…

【Python BUG】ModuleNotFoundError: No module named ‘streamlit.cli‘

问题 streamlit做大模型前端demo&#xff0c;安装后不好使。 解决方案 参考&#xff1a; https://zhuanlan.zhihu.com/p/656164361 找到下面文件&#xff1a; 替换、修改内容&#xff1a; # from streamlit.cli import main from streamlit.web.cli import main原来是上边…

JavaScript_与html结合方式

JavaScript_语法 ECMAScript&#xff1a;客户端脚本语言的标准 1.基本语法 1.1 与html结合方式&#xff08;2种&#xff09; 1. 内部JS 定义<script>,标签体内容就是js代码 2. 外部JS 定义<script>,通过src属性引入外部的 js文件 注意&#xff1a; 1.<script>…

【DPU微知识】NVIDIA-BlueFiled DPU概念之:BFB是什么?

BFB是BlueField Boot Stream的缩写&#xff0c;由Bootloader、Linux OS、Romfs组成。本质&#xff1a;bootload、系统、文件系统。&#xff08;其实就是DPU的上装类比标准host的grub、linux、文件系统&#xff0c;类似做Linux移植时候构建的最小文件系统的三件套差不多&#xf…