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)
任务 制作一个电商页面,要求所卖物品清晰,页面色调清晰,要有主页和详情页。 网站所买物品:书籍 色调:#FF2400 橙红色 代码 主页HTML代码: <html><head><meta charset"utf-8"…...
Android Sutdio依赖Snapshot版本,无法同步最新的包
起因 局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次推送后,就没有重新下载最新的包,…...
Feign调用异常触发降级捕获异常
通过配置fallbackFactory来捕获异常信息,代码如下 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 音乐网站管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…...

微信支付v2-02
...

企业的销售活动是什么?CRM销售管理系统给你答案
在企业业务中,销售活动是实现企业业绩目标的基本单元,起着奠基石的作用。CRM销售管理系统是销售活动管理的必备工具,帮助企业更好地开展销售活动。下面来说说企业的销售活动是什么? 什么是销售活动 简单来说,销售人员…...
【PG】PostgreSQL参数格式 配置文件格式
目录 一 PG参数格式 二 通过配置文件修改参数 postgresql.auto.conf文件 三 通过SQL修改参数 四 通过shell修改参数 五 管理配置文件内容 一 PG参数格式 所有参数名都是大小写不敏感的。每个参数都可以接受五种类型之一的值: 布尔、字符串、整数、 浮点数或枚…...

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

Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。
演示视频: Springbootvue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的应急救援物资管理系统,采用M(model)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 结构,“node_modules” 文件夹通常包含项目依赖的模块。在项目中使用多个依赖并且这些依赖本身也有它们自己的依赖时,就会出现嵌套的 “node_modules” 结构。 嵌套的 “node_mo…...

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

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

突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S
华为海思麒麟芯片过去10年研发历程回顾如下: 2009年:华为推出第一款手机芯片K3V1,采用65nm工艺制程,基于ARM11架构,主频600MHz,支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上,标志着华…...

vue建项目
vue3 create-vue 建vue3项目 vscode里改点东西,首先vetur禁用,这个是vue2的,下volar pinia持久化插件: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、包含组件(核心) 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…...

IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)
编程过程中如果出现错误,需要查找和定位错误时,借助程序调试可以快速查找错误。 编写好程序后,可能出现的情况: 1.没有bug。 使用Debug的情况: 2.运行后,出现错误或者异常信息,但是通过日志文件…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...