前端-Git
一.基本概念
Git版本控制系统时一个分布式系统,是用来保存工程源代码历史状态的命令行工具
简单来说Git的作用就是版本管理工具。
Git的应用场景:多人开发管理代码;异地开发,版本管理,版本回滚。
Git 的三个区域:
- 工作区:处理工作的区域
- 暂存区:临时存放的区域
- 本地git仓库:最终的存放区域
在文件夹的体现如下:
- 工作区:在你电脑里看到的目录
- 暂存区:在.git文件夹内的index中 (二进制记录)
- 版本库:指的整个.git文件夹 (也认为是本地仓库)
工作区就是电脑里的本地文件,工作区有一个隐藏目录.git,不算工作区,而是Git的版本库。往版本库里添加文件的两步操作,第一步用git add把文件添加进去,实际上就是把文件修改添加到暂存区,第二步用git commit提交更改,实际上就是把暂存区的所有内容提交到版本库。

二.基本使用
(码云gitee示例)
1.新建仓库:

2.打开git bash配置git全局变量

在用户文件下可以查看配置信息:

又或者运行:
git config --list
3.初始化:
新建一个空文件夹后git bash

git init
开启显示隐藏文件即可看到.git文件

4.查看状态
git status

5.将文件添加/删除到暂存区
git add . // .的意思是添加所有文件至暂存区。


再次查看状态:

如果想从缓存区删除:
git rm --cached 文件名 #将文件从暂存区删除(此时还没有记录历史版本,只有commit时才会有历史版本)
6.提交到本地库
git commit -m
git commit -m "remove 文件"//从本地库删除


7.查看差异
git diff //工作区和暂存区差别
git diff -cache //暂存区和版本库区别
7.查看日志信息
git reflog #查看历史版本
git log #可以查看更详细的提交日志

8.修改文件内容


显示文件被修改:

再次添加到暂存区和版本区:

提交文件后,提示一个文件被修改,一行新增,一行删除,是因为git中通过行来维护文件,修改一行,它无法表示,它是把修改之前的那一行删掉,再把修改之后的一行的内容新增进来。
查看日志:

9.版本回溯
git reset --hard 历史版本号"

已经回溯:

上述总结:

10.分支管理
Git分支是在Git版本控制系统中用于并行开发和管理不同功能或版本的代码的重要概念。分支可以让开发者在不影响主线代码的情况下,独立地进行开发、测试和修改。在Git中,主要的分支是master(或main)分支,它包含了项目的主要代码。除了主分支外,开发者可以创建其他分支,比如feature分支用于开发新功能,bugfix分支用于修复bug,release分支用于发布版本等。
分支的优势在于它能够提供一种安全的方式来进行并行开发,避免了直接在主分支上进行修改可能带来的风险。同时,分支也可以帮助团队协作,每个成员可以在自己的分支上进行开发,最后合并到主分支上。
在Git中,创建、切换、合并、删除分支都是非常简单的操作,开发者可以根据需要随时创建新的分支,并在不同分支之间切换,以便进行不同的工作。因此,合理地使用分支可以帮助开发团队更高效地进行代码管理和开发工作。
①查看分支
git branch -v //查看当前存在的的分支

②创建分支
git branch 分支名
git branch -d 分支名 //删除分支

第一次创建并切换到 分支,你会发现 master 分支上的所有代码 (和当前节点所有提交记录) 都被复制了过来 了,我们只需要在这个基础上接着往后开发就行
③切换分支:
git checkout 分支名
git checkout -b分支名 //创建并切换到分支

在分支上修改内容:


④合并分支
正常情况下执行:
git merge 目标分支名


执行合并:


但是如果 在两个分支修改了同一个文件并提交过,在合并的时候,就会产生冲突
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容


切换回master分支合并,产生冲突:

打开vscode:

四选一点击修改,选择保留方式后,需要再次暂存提交一次:
我这里选择采用传入的更改:

查看结果:

11.团队协作

简述:A和B是同一团队的成员,A将代码push至代码远程仓库,B可以将其clone下来然后修改,再push到远程仓库,A就可以pull下B修改的部分代码。
下面回到之前的码云(gitee)操作:
①链接到仓库
git remote add 别名 链接

②本地推入远程仓库
git push 别名 分支
如果出现报错:

出现这个错误提示是因为远程仓库包含了一些本地没有的更新内容,所以推送被拒绝了。
通常的解决办法如下:
方法一:先拉取再推送
按照提示所说,先执行 git pull 命令将远程仓库的更新拉取到本地,合并到当前分支后,再尝试执行 git push 操作。
git pull
git push git-test master
不过在执行 git pull 时,如果存在合并冲突,需要手动解决这些冲突。解决冲突后,再进行推送就可以了。
方法二:使用 --force 选项(谨慎使用)
如果你确定要覆盖远程仓库的当前状态(比如远程仓库的更新你并不在意,只想用本地的内容强行覆盖),可以使用 git push 的 --force 选项。
但要特别注意,这种方式会强制覆盖远程仓库的内容,可能会导致其他人在远程仓库上所做的工作丢失,所以除非你非常确定不会影响到其他人或者整个项目的正常进展,否则不要轻易使用。

③拉取远程库到本地
git pull 远程仓库的别名或链接 分支名
git pull 是 git fetch 和 git merge 的组合,但你也可以分开执行这两个命令以获得更多控制。首先运行 git fetch 来获取远程更改但不合并它们,然后你可以使用 git merge 或其他Git命令(如 git rebase)来合并这些更改
④克隆远程仓库到本地
本地新建一个文件夹
git clone 远程仓库的别名或链接
⑤清空远程仓库但不删除
git rm -rf * //先将工作区所有文件删除
git commit -m 'Empty the repository' //然后提交
git push

Git命令操纵总结
git init //初始化本地库 并且生成一个.git文件
git status //查看本地库状态
git add . //将所有文件添加到暂存区
git commit -m 文件名 //提交暂存区的文件到版本库
git reflog//查看历史记录
git reset --hard 版本号 //版本控制
git branch -v //查看当前存在的分支
git branch 分支名 //创建分支
git branch -d 分支名 //删除分支
git checkout 分支名 //切换分支
git checkout -b分支名 //创建并切换到分支
git merge 目标分支名 //合并分支
参考文章:https://juejin.cn/post/7325132211312492570
相关文章:
前端-Git
一.基本概念 Git版本控制系统时一个分布式系统,是用来保存工程源代码历史状态的命令行工具 简单来说Git的作用就是版本管理工具。 Git的应用场景:多人开发管理代码;异地开发,版本管理,版本回滚。 Git 的三个区域&a…...
如何分析Windows防火墙日志
Windows防火墙,也被称为Windows Defender Firewall,是一种内置的安全功能,可以主动监控和分析运行Windows操作系统的计算机上通过Windows防火墙的网络流量,主要目的是作为计算机和互联网或其他网络之间的屏障,使管理员…...
工作坊报名|使用 TEN 与 Azure,探索你的多模态交互新场景
GPT-4o Realtime API 发布,语音 AI 技术正在进入一场新的爆发。语音AI技术的实时语音和视觉互动能力将为我们带来更多全新创意和应用场景。 实时音频交互: 允许应用程序实时接收并响应语音和文本输入。自然语音生成: 减少 AI 技术生成的语音…...
学习笔记041——Elastic Search的学习与使用以及SpringBoot整合
文章目录 1、Elastic Search介绍1.1、ES 的数据结构1.2、ES 为什么查询快1.3、CRUD 2、Spring Boot 整合 ES 1、Elastic Search介绍 Elasticsearch是一个分布式的、基于RESTful API的搜索和分析引擎,广泛用于大规模数据存储和快速检索。它最初由Shay Banon于20…...
R安装rgdal报错 解决办法
尝试了网上很多办法,不知道哪一步解决了,记录一下所有步骤: 1. 尝试github安装 options(repos c(CRAN "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))install.packages("devtools")library(devtools)devtools::in…...
【智能制造-46】人机工程(工厂自动化)
工作空间设计 设备布局规划 根据人体测量学数据,合理安排自动化设备、生产线和工作区域的布局。例如,考虑工人的操作空间和活动范围,确保他们能够舒适地接近和操作设备。在汽车装配车间,机器人和工人的工作区域应划分明确&#…...
C#笔记(5)
一、winform项目与窗体控件 1、部分类的使用 好处:让自动生成的代码后置,我们编写程序的代码显得更加简洁 特点:在最后编译的时候,仍然编译成一个窗体类。 窗体和控件的基本使用 3、Event事件(委托--》事件&#…...
【软件国产化】| Windows和Linux下文件名后缀是否区分大小写
今天在开发过程中遇到了个软件在Linux系统和Windows系统下功能表现不一致的bug,具体表现为: 插入一张图片(A文件夹中的001.jpg),然后使用“图片替换”功能,用B文件夹中的图片(B文件夹中的001.JP…...
讨论JAVA、JVM与Spring
Q1: 作为一个JAVA开发人员,对于jvm肯定不陌生,但很多人对它不陌生也仅止于概念上,而且对概念也是模糊不清的,但jvm实际是java程序运行在其中的实际存在的环境,对它的理解应该要是具象化的。 我们还是从一项技术产生的…...
【04】MySQL数据库和数据表的基本操作详解与实例
文章目录 一、连接MySQL服务器二、数据库的基本操作2.1数据库的基本操作1. 创建数据库2. 选择数据库3. 删除数据库4.查询所有数据库5.修改数据库的字符集 2.2 数据表的基本操作1. 创建数据表2. 查看数据表结构3. 删除数据表4. 修改数据表5. 插入数据6. 查询数据7. 更新数据8. 删…...
Spring中实现动态数据源切换,基于AbstractRoutingDataSource
背景 在项目开发过程中,我们可能会遇到一个场景:某个类型数据源有多个数据源实例,需要我们按照不同的请求切换到不同数据源去。 而目前绝大多数java应用都是基于Spring框架来开发,我们很多时候相关的数据源连接都是交给了Spring框…...
StarRocks-join优化
1、背景 有两个大表,都是6kw级别上下的,通过SR然后包装了一个接口对外提供查询,当前的问题是,这样大的join查询会导致BE直接宕机。并且这个sql很有代表性,我截图如下: 这个表是个单分区,所以直接…...
js 高亮文本中包含的关键词标红
在开发中,遇到需要将文本中包含的关键字高亮的情况,可以做以下处理。 <div class"title"v-html"highlightKeywords(item.title, state1.tags1.concat(state2.tags2).concat(state3.tags3))"> </div> ...... ...... con…...
DVWA靶场——File Inclusion
File Inclusion(文件包含)漏洞 指攻击者通过恶意构造输入,利用应用程序错误的文件包含机制,导致程序包含并执行未经授权的本地或远程文件。这类漏洞广泛存在于Web应用程序中,尤其是在那些允许用户提供文件路径或URL的地…...
Android Framework禁止弹出当前VOLTE不可用的提示窗口
文章目录 VoLTE简介VoLTE 的优势 当前VOLTE不可用的弹窗弹窗代码定位屏蔽弹出窗口 VoLTE简介 VoLTE(Voice over LTE)是一种基于4G LTE网络的语音通话技术。它允许用户在4G网络上进行高质量的语音通话和视频通话,而不需要回落到2G或3G网络。V…...
OceanBase 大数据量导入(obloader)
现需要将源数据库(Oracle|MySQL等)一些表的海量数据迁移到目标数据库 OceanBase 中,基于常规 jdbc 驱动编码的方式涉及开发工作,性能效率也要看编码的处理机制。 OceanBase 官方提供了的 OceanBase Migration Service (OMS) 数据…...
w058基于web的美发门店管理系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件࿰…...
实时数据开发 | checkpoints监控和调优
监控Checkpoints 监控 checkpoint 行为最简单的方法是通过 UI 的 checkpoint 部分。 监控这两个指标: 算子收到第一个 checkpoint barrier 的时间。当触发 checkpoint 的耗费时间一直很高时,这意味着 checkpoint barrier 需要很长时间才能从 source 到达 operator…...
el-tree的使用及控制全选、反选、获取选中
el-tree的使用及控制全选、反选、获取选中 组件使用获取选中的id全选实现反选实现全部代码 组件使用 引入组件,可以参考官网组件引入参考官网示例写好基础数据结构,不知道怎么转换树形机构的看文章:一维数组转树形 <template><el-…...
机器学习(二十五):决策树算法以及决策树和神经网络的对比
一、决策树集合 单一决策树会对训练数据的变化很敏感。例子:输入十个数据,判断是否是猫。只替换其中一个数据,信息增益最高的分裂特征就发生了改变,决策树就发生了变化。 使用决策树集合可以使算法更加健壮。例子:使用…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
