当前位置: 首页 > news >正文

Git相关知识(1)

目录

1.初识Git 

1.基础知识

2.centos中下载

2.基本操作

1.创建本地仓库

2.配置本地仓库

3.版本库、工作区、暂存区

4.添加文件

5.add和commit对git文件的作用

6.修改文件

7.版本回退

8.撤销修改

9.删除文件

3.分支操作

1.HEAD与分支

2.创建分支

3.删除分支

4.合并冲突

5.分支管理

6.分支决策


1.初识Git 

1.基础知识

Git:是一种版本控制器,用于记录每一次修改以及版本迭代的一个管理系统

作用:可以控制电脑上所有格式的文档,对于开发人员而言最重要的就是可以管理项目中的源代码文档

2.centos中下载

sudo yum install git -y

2.基本操作

1.创建本地仓库

想要Git进行管理,必须将文件放在Git仓库中进行管理

git init:在当前文件中创建一个Git仓库

此时我们会发现文件中有一个隐藏文件.git,其用于追踪管理文件

2.配置本地仓库

1.配置用户名称:git config user.name "(这里写用户名字)"

2.配置用户email地址:git config user.email"(这里写用户地址)"

3.查看当前所有的配置属性:git config -l

4.重置配置:git config --unset XXX(属性)

在当前主机下,本地仓库可以开辟多个

5.所有本地仓库的配置项:本地仓库git config --global XXX(属性) YYY(配置信息)

6.--global创建的属性,不能通过普通的重置,得使用git config --global --unset XXX(属性)

3.版本库、工作区、暂存区

1.如果直接新建一个文档在本地仓库下,那么此时git并没有对该文档进行管理

2.真正管理文件的仓库其实是.git这个隐藏文件。此外不能对.git进行手动修改

3..git为版本库,也叫做仓库

4.生成的这个文档其实在工作区

5.index为暂存区,也是索引。存储的是修改对象的索引

6.objects:对象库,存储git对象。修改的工作区内容会写入到对象库的一个git对象。用于维护所有文件的版本

7.master:存储修改对象的索引

add:将工作区的修改文件添加到暂存区。这里的修改文件指的是:增删改的文件

commit:将index的文件存入到master中,此刻才能说文件被放入了版本库中进行管理

4.添加文件

git add . :工作区所有文件添加到暂存区

git add (指定文件) :工作区指定文件添加到暂存区

git commit -m "(本次添加的细节)"

git log:查看由近到远的提交记录细节   [git log --pretty=oneline]

5.add和commit对git文件的作用

1.add之后的内容都在index中

2.cat .git/HEAD后,我们能查看到HEAD指向的是master

3.master存放的是最新的commit的id

4.objects中存放了很多的对象

5.git  cat-file -p commit的id:查看objects中的对象

6.修改文件

git status:查看哪些文件进行修改

git diff 文件名:查看文件修改的是情况(-为原版,+为改版)

7.版本回退

git reset [--soft | --mixed | --head] [HEAD]:本质是将版本库的版本进行回退

--soft:只回退版本库

--mixed:回退版本库和暂存区

--head:回退所有内容

git reflog:查看每次本地提交命令

1.配合git log --pretty=oneline查看得到commitID,使用git reset [--soft | --mixed | --head] [HEAD]

2.git reset [--soft | --mixed | --head] [HEAD]可以回退,但是需要得到commitID

1.版本回退的速度其实很快

2.其原理其实是因为HEAD指向的master中有commitID,只需要在回退版本时将master的commitID修改即可

3.git reset还可以回退到当前版本,用于撤销修改。默认时--mixed,^表示回退一个版本

8.撤销修改

撤销有不同的策略:

1.只有工作区修改了

1.手动撤销 --- 不推荐 

2.git checkout -- [文件名]

2.工作区和暂存区修改了

1.git reset --head 文件名 HEAD

2.git reset 文件名,就变成了条件1

3.所有区都修改了

git reset --head HEAD

1.push操作可把版本库内容发送给远程仓库

2.想要实现条件3撤销修改操作,需要在commit之后没有进行push操作

3.条件3修改是为了不影响远程仓库

9.删除文件

方法1:rm删除文件后,还想要add和commit将文件更新

方法2:git rm 文件,实际该操作包含rm和add两步,最后我们commit即可

3.分支操作

1.HEAD与分支

HEAD指向的master,master记录最新的commitID。通过对master的结构中的parent能够回溯到之前的版本中去

2.创建分支

git branch:查看分支

git branch 创建分支的名称:创建分支

1.HEAD可以指向其他分支,被HEAD指向的分支才是当前工作的分支

2.此时我们会发现,HEAD文件中有一个master和一个新建的分支。并且这个新建分支指向的也是当前的工作分支

git checkout 分支名称:切换分支(HEAD指向新分支)

git merge 分支名称:合并分支

3.删除分支

删除分支的条件就是:必须在其他的分支上对非当前分支上进行删除

git branch -d 分支名:删除指定分支,指的是合并后的删除

4.合并冲突

多条分支对同一个文件进行操作后,使得文件的内容都不一样,那么此时如果进行git merge合并操作,那么就会报错说明当前的内容合并冲突了,需要我们自己手动进行筛选自己想要的内容。

一旦冲突修复完毕,需要重新对文件进行提交。

git log --graph --abbrev-commit:可视化分支结构

5.分支管理

git merge合并的通常为Fast forward模式。该模式无法判断是merge进来的文件还是正常提交的文件

git merge --no--ff -m "提交信息" 分支:不使用Fast forward模式

6.分支决策

1.master分支:在任何环境下都是稳定的环境,它在项目实现中作为最终出现的结果。其他分支不稳定需要经过公司的一系列测试最终将稳定的代码合并到master中去。其他分支的编写真好符合分组开发的要求。

2.bug分支:master分支稳定也不能百分百得到保证,它也会出现bug。我们不能在master中直接对文件进行修改。当然所有业务开发的文件都可以创建bug分支对文件进行修改为保证可靠性。

git stash:将工作区的内容进行存储,保存到/refs中。

git stash list:查看保存

git stash pop:撤回stash

1.如果其他文件正在开发,master出bug了,那么将其他开发文件git stash保存,此时的文件变回原来的内容。随后创造bug分支,将所有的修改改完合并到master中。最后将其他开发git stash pop,撤回stash继续开发。

2.若想继续将master和其他文件进行合并,不建议直接在master中合并,我们要在其他文件中合并,就算合并有bug也可以慢慢改

未merge的分支的删除操作:

1.首先说明不能使用git branch -d,因为文件被保护无法删除

2.可以使用git branch -D强制删除

相关文章:

Git相关知识(1)

目录 1.初识Git 1.基础知识 2.centos中下载 2.基本操作 1.创建本地仓库 2.配置本地仓库 3.版本库、工作区、暂存区 4.添加文件 5.add和commit对git文件的作用 6.修改文件 7.版本回退 8.撤销修改 9.删除文件 3.分支操作 1.HEAD与分支 2.创建分支 3.删除分支 …...

pytorch中nn.DataParallel多次使用

pytorch中nn.DataParallel多次使用 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader# 定义模型 class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()self.fc nn.Linear(10, 1)def forwa…...

制作电商页面(Html)

任务 制作一个电商页面&#xff0c;要求所卖物品清晰&#xff0c;页面色调清晰&#xff0c;要有主页和详情页。 网站所买物品&#xff1a;书籍 色调&#xff1a;#FF2400 橙红色 代码 主页HTML代码&#xff1a; <html><head><meta charset"utf-8"…...

Android Sutdio依赖Snapshot版本,无法同步最新的包

起因 局域网中搭建了Nexus托管本地打包的aar&#xff0c;正常情况下&#xff0c;把修改完成的库推送到仓库后&#xff0c;其他项目引用Snapshot版本的依赖&#xff0c;同步后会马上下载最新的包&#xff0c;但是当第二次推送后&#xff0c;就没有重新下载最新的包&#xff0c;…...

Feign调用异常触发降级捕获异常

通过配置fallbackFactory来捕获异常信息&#xff0c;代码如下 FeignClient(name "user", fallbackFactory UserFallBackFactory.class) public interface UserFeign {PostMapping("/get/list")Map getList();}Component public class UserFallBackFacto…...

Springboot 音乐网站管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 音乐网站管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统 具有完整的源代码和数据库&…...

微信支付v2-02

...

企业的销售活动是什么?CRM销售管理系统给你答案

在企业业务中&#xff0c;销售活动是实现企业业绩目标的基本单元&#xff0c;起着奠基石的作用。CRM销售管理系统是销售活动管理的必备工具&#xff0c;帮助企业更好地开展销售活动。下面来说说企业的销售活动是什么&#xff1f; 什么是销售活动 简单来说&#xff0c;销售人员…...

【PG】PostgreSQL参数格式 配置文件格式

目录 一 PG参数格式 二 通过配置文件修改参数 postgresql.auto.conf文件 三 通过SQL修改参数 四 通过shell修改参数 五 管理配置文件内容 一 PG参数格式 所有参数名都是大小写不敏感的。每个参数都可以接受五种类型之一的值&#xff1a; 布尔、字符串、整数、 浮点数或枚…...

应用层协议 HTTP

一、应用层协议 我们已经学过 TCP/IP , 已然知道数据能从客户端进程经过路径选择跨网络传送到服务器端进程。 我们还需要知道的是&#xff0c;我们把数据从 A 端传送到 B 端&#xff0c; TCP/IP 解决的是顺丰的功能&#xff0c;而两端还要对数据进行加工处理或者使用&#xf…...

Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的应急救援物资管理系统&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的应急救援物资管理系统&#xff0c;采用M&#xff08;model&#xff09;V&…...

创建properties资源文件,并由spring组件类获取资源文件

1.1 创建资源文件file-upload-dev.properties #文件上传地址 file.imageUserFaceLocation=/workspaces/images/foodie/faces #图片访问地址 file.imageServerUrl=http://localhost:8088/foodie/faces1.2 创建spring组件获取资源文件类FileUpload import org.springframework.…...

你知道npm、yarn、pnpm的区别吗?

npm 嵌套的 node_modules 结构 npm 在早期采用的是嵌套的 node_modules 结构&#xff0c;“node_modules” 文件夹通常包含项目依赖的模块。在项目中使用多个依赖并且这些依赖本身也有它们自己的依赖时&#xff0c;就会出现嵌套的 “node_modules” 结构。 嵌套的 “node_mo…...

利用excel表格进行分包和组包

实际使用中&#xff0c;我们可能希望修改某几个数据之后&#xff0c;最终的数据包能够自动发动数据&#xff0c;类似于在给结构体变量修改数据&#xff0c;自动生成完整的结构体&#xff1b; excel语法 1&#xff1a;拆分数据 LEFT(A4,2) – 取A4单元格左边的两个数据 RIGHT(A4…...

Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍

本次主要来聊聊关于切片的扩容是如何扩的&#xff0c;还请大佬们不吝赐教 切片&#xff0c;相信大家用了 Go 语言那么久这这种数据类型并不陌生&#xff0c;但是平日里聊到关于切片是如何扩容的&#xff0c;很多人可能会张口就来&#xff0c;切片扩容的时候&#xff0c;如果老…...

突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S

华为海思麒麟芯片过去10年研发历程回顾如下&#xff1a; 2009年&#xff1a;华为推出第一款手机芯片K3V1&#xff0c;采用65nm工艺制程&#xff0c;基于ARM11架构&#xff0c;主频600MHz&#xff0c;支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上&#xff0c;标志着华…...

vue建项目

vue3 create-vue 建vue3项目 vscode里改点东西&#xff0c;首先vetur禁用&#xff0c;这个是vue2的&#xff0c;下volar pinia持久化插件&#xff1a;npm i pinia-plugin-persistedstate 配eslint、prettier 在.eslintrc.cjs里配 rules: {// prettier专注于代码的美观度 (格…...

天龙八部服务端Public目录功能讲解

PublicDataAIScript文件夹中 script(0~210).ai怪物AI脚本设定如是否主动攻击是否使用技能 PublicDataScript文件夹中 eventbossgroupbg_BossAI_CreateMonster.lua 是BOSS群 刷小怪通用脚本 PublicDataScript文件夹中 eventbossgroupbg_CangShan.lua 苍山 BOSS群刷新脚本 Public…...

好用的Java工具类库—— Hutool

目录 一、简介 1、介绍 2、Hutool名称的由来 3、Hutool如何改变我们的coding方式 4、包含组件&#xff08;核心&#xff09; 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…...

IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)

编程过程中如果出现错误&#xff0c;需要查找和定位错误时&#xff0c;借助程序调试可以快速查找错误。 编写好程序后&#xff0c;可能出现的情况&#xff1a; 1.没有bug。 使用Debug的情况&#xff1a; 2.运行后&#xff0c;出现错误或者异常信息&#xff0c;但是通过日志文件…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

Django RBAC项目后端实战 - 03 DRF权限控制实现

项目背景 在上一篇文章中&#xff0c;我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统&#xff0c;为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...