Git仓库
Git初始
概念
一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码
作用
记录代码内容,,切换代码版本,多人开发时高效合并代码内容
如何学:
个人本机使用:Git基础命令和概念
多人共享使用:团队开发同一个项目的代码版本管理
使用Git
1.打开bash终端

2.命令:git -v(查看版本号)
git -v
配置用户信息
配置:用户名和邮箱,应用在每次提交代码版本时表明自己身份
-
用户名
git config --global user.name "用户名"
-
邮箱
git config --global user.email "邮箱"
掌握Git仓库
Git仓库(repository):记录文件状态内容的地方,存储着修改的历史记录
创建
1.把本地文件夹转换成Git仓库:命令git init

2.从其他服务器上克隆Git仓库
需求:创建一个空白的Git仓库


Git的三个区域
Git使用时:
-
工作区:实际开发时操作的文件夹

-
暂存区:保存之前的准备区域(暂存改动的文件)

-
版本库:提交并保存暂存区中内容,产生一个版本快照


| 命令 | 作用 |
|---|---|
| git add文件名 | 暂存指定文件 |
| git add. | 暂存所有改动的文件 |
| git commit -m | 提交保存,产生版本快照 |
需求:把登录页面新增后,暂存提交
Git文件状态
Git文件2种状态:
-
未跟踪
新文件,从未被Git管理过
-
已跟踪
Git已经知道和管理的文件
使用:新增css文件,并使用git status -s查看文件状态,并最终提交
第一列是暂存区状态
第二列是工作区状态
| 文件状态 | 概念 | 场景 |
|---|---|---|
| 未跟踪(U) | 从未被Git管理过 | 新文件 |
| 新添加(A) | 第一次被Git暂存 | 之前版本记录无此文件 |
| 未修改('') | 三个区域统一 | 提交保存后 |
| 已修改(M) | 工作区内容变化 | 修改了内容产生 |
-
查看暂存区和工作区状态
git status -s

Git暂存区使用
暂存区:暂时存储,可以临时恢复代码内容,与版本解耦
暂存区 ->覆盖 -> 工作区,命令:git restore目标文件(注意:完全确认覆盖时使用)

从暂存移除文件,命令:git rm --cached 目标文件

Git回退版本
概念
把版本库某个版本对应内容快照,恢复到工作区/暂存区
-
查看提交历史
git log --oneline
回退命令
-
git reset --soft版本号(其他文本跟踪)
-
git reset --hard版本号
-
git reset --mixed版本号(与git reset等价)
注意1
只有记录在版本库的提交记录才能恢复
注意2
回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)
删除文件
需求:删除editor.js文件,并产生一次版本记录
步骤
1.手动删除工作区文件
2.暂存变更/手动删除暂存区文件造成变更


3.提交保存

总结
工作区只要改变,都可以暂存提交新记录
忽略文件
概念
.gitignore文件可以让git彻底忽略跟踪指定文件
目的:让git仓库更小更快,避免重复无意义的文件管理
例如
-
系统或软件自动生成的文件
-
编译产生的结果文件
-
运行时生产的结果文件
-
涉密文件,密码,密钥等文件
创建
1.项目跟目录新建.gitignore文件

2.填入相应配置来忽略指定文件
# 忽略npm下载第三方包
node_modules
# 忽略分发文件夹
dist
# 忽略VSCode 配置文件
.vscode
# 忽略密钥文件
*.pem
*cer
#忽略日志文件
*.log
注意
如果文件已经被暂存区跟踪过,可以从暂存区移除可
分支
概念
本质上是指向提交节点的可变指针,默认名字是master
注意
HEAD指针影响工作区/暂存区的代码状态


场景
开发新需求/修复Bug,保证主线代码随时可用,多人协同开发提高效率
例如
在现有代码上创建分支完成内容列表业务,突然需要紧急修复Bug -单独创建分支解决Bug

需求
创建内容列表content分支,并产生3次提交记录
步骤
1.创建分支命令
git branch 分支名

2.切换分支命令
git checkout 分支名

合并与删除
需求
把login-bug合并回到master分支并删除login-bug分支
步骤
1.切回到合入的分支上:git checkout master

2.合并其他分支过来:git merge login-bug

3.删除合并后的分支指针:git branch -d login-bug

合并于提交
发生于产生新的提交记录后,再合并回去时发生,自动使用多个快照记录合并产生一次新的提交
步骤
1.切回到要合入的分支上:git checkout master

2.合并其他分支过来:git merge content

3.删除合并后的分支:git branch -d content


合并冲突
需求1
基于master新建publish分支,完成发布文章业务,然后修改内容页面的html文件的title标签,并提交一次
需求2
切换到master,也在修改内容页面的html文件的title标签,并提交一次
冲突:把publish分支合并到master回来,产生合并冲突
概念分支中,对同一个文件的同一部分修改,Git无法干净的合并,产生合并冲突
解决
-
打开VSCode找到冲突文件并手动解决
-
公共代码在统一文件维护
-
Node等软件版本统一,npm包统一下载
Git常用命令
| 命令 | 作用 | 注意 |
|---|---|---|
| git -v | 查看 git 版本 | |
| git init | 初始化 git 仓库 | |
| git add 文件标识 | 暂存某个文件 | 文件标识以终端为起始的相对路径 |
| git add . | 暂存所有文件 | |
| git commit -m '说明注释' | 提交产生版本记录 | 每次提交,把暂存区内容快照一份 |
| git status | 查看文件状态 - 详细信息 | |
| git status -s | 查看文件状态 - 简略信息 | 第一列是暂存区状态,第二列是工作区状态 |
| git ls-files | 查看暂存区文件列表 | |
| git restore 文件标识 | 从暂存区恢复到工作区 | 如果文件标识为 . 则恢复所有文件 |
| git reflog --oneline | 查看完整历史 - 简略消息 | 包括提交,切换,回退等所有记录 |
| git reset 版本号 | 切换版本代码到暂存区和工作区 | --soft 模式保留暂存区和工作区原本内容 --hard 模式不保留暂存区和工作区原本内容 --mixed 模式不保留暂存区,工作区保留(默认) 先覆盖到暂存区,再用暂存区对比覆盖工作区 |
| git branch 分支名 | 创建分支 | |
| git branch | 查看本地分支 | |
| git branch -d 分支名 | 删除分支 | 请确保记录已经合并到别的分支下,再删除分支 |
| git checkout 分支名 | 切换分支 | |
| git checkout -b 分支名 | 创建并立刻切换分支 | |
| git merge 分支名 | 把分支提交历史记录合并到当前所在分支 |
Git远程仓库
需求
-
创建远程版本库,并把本地Git仓库推送上去保存
网址:Gitee - 基于 Git 的代码托管和研发协作平台
步骤
1.注册第三方托管平台账号

2.新建仓库得到远程仓库Git地址


3.本地Git仓库添加远程仓库原点地址
命令
git remote add 远程仓库别名 远程仓库地址
例如
git remote add origin https://gitee.com/XXX_1_0/XXX.git
4.本地Git仓库推送版本记录到远程仓库
命令
git push -u 远程仓库别名 本地和远程分支名
例如
git push -u origin master
最后提交成功啦

Git远程仓库-克隆
克隆
拷贝一个Git仓库到本地,进行使用
命令
git clone 远程仓库地址
列如
git clone https://gitee.com/lidongxu/work.git
效果
在运行命令所在文件夹,生成work 项目文件夹(包含版本库,并映射到暂存区和工作区)


多人协同开发
需求
1.小传开发代码->工作区->暂存区->提交->拉取(可选)-> 推送


2.小智->拉取(后续也可以开发代码-> ...->推送)
3.想要看到别人同步上去的最新内容:git pull origin master等价于
git fetch origin master:master(获取远程分支记录到本地,未合并)
git merge origin/master(把远程分支记录合并到所在分支下 )

相关文章:
Git仓库
Git初始 概念 一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用 记录代码内容,,切换代码版本,多人开发时高效合并代码内容 如何学: 个人本机使用:Git基础命令和概念 多…...
【科研日常】论文投稿的几大状态
Manuscript Submitted(Submitted to Journal):表示论文已经投稿成功,等待期刊工作人员检查论文格式排版、重复率是否符合要求,符合要求的文章会分配给期刊编辑进行处理。 Awaiting Admin Processing:意为等…...
SSLHandshakeException错误解决方案
1、错误提示 调用Http工具报如下异常信息: cn.hutool.core.io.IORuntimeException: SSLHandshakeException: Received fatal alert: handshake_failure2、查询问题 一开始我以为是代码bug,网络bug甚至是配置环境未生效,找了一大圈…...
python数据结构基础(7)
本节学习最后一种数据结构---图,在很多问题中应用图可以帮助构建思维空间,快速理清思路,解决复杂问题. 图就是一些顶点的集合,这些顶点通过一系列边链接起来.根据边的有向和无向,图分为有向图和无向图.有时图的边上带有权重,本节暂时不将权重作为重点. 计算机通过邻接表或者邻…...
【系统集成项目管理工程师】英语词汇对照表-项目管理类
英语单词(项目管理类)中文解释Activity活动Accept验收Acceptable Quality Level可接受的质量水平Acceptance Standard验收标准Acquisition Plan Review采购计划评审Action处理Active On the Arrow双代号网络图Activity Based Costing (ABC)基于活动的成本…...
购物车-多元素组合动画css
学习 渡一课程 多元素组合动画 练习。 在我们开发购物车功能时,经常会有点击添加按钮,就会有一个小圆点掉进购物车的动画,如下图所示,今天我们通过css来实现。 首先实现多元素组合动画 直接上代码,可以复制到本地使用…...
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(3)
前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 欢迎订阅 YY滴其他专栏!…...
[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DarkHole:1 通关详解 (附靶机搭建教程)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
【LeetCode】移除链表中等于设定值的元素、反转链表
主页:HABUO🍁主页:HABUO 🌜有时候世界虽然是假的,但并不缺少真心对待我们的人🌛 1. 移除链表中设定值的元素 题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所…...
Redis - 主从复制
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满⾜故障恢 复和负载均衡等需求。Redis也是如此,它为我们提供了复制的功能,实现了相同数据的多个Redis副 本。复制功能是⾼可⽤Redis的基础,…...
UE5 HLSL 学习笔记
half的取值范围是整形的-60000 到 60000,考虑带宽的情况下使用half vector默认为float4 访问可以.xyzw,也可以.rgba,也可以[index],且顺序可以变,比如说.yzwx 矩阵的获取值的方式 第一个行代表获取第1行第0号元素 第…...
一个简单ASP.NET购物车设计
思路: 创建一个多选列表 在cs文件里初始化购物车会话变量,同,创建一个新的 List<string> 并将其赋值给会话状态中的 "Cart" 键–(利用Session) Session 是一种用于存储用户特定信息的对象,这些信息可…...
双向循环列表
双向循环列表的实现。 根据定义实现。不解释,具体细节看代码。 list.h #pragma once#pragma pack(1)typedef struct _MyListEntry {_MyListEntry* next;_MyListEntry* prev; }MyListEntry;#pragma pack()class MyListClass { public:MyListEntry* m_list0;int m_k…...
go项目出现了ambiguous import要怎么解决?
前言 最近小编在 构建一个项目时出现了问题,提示报错里ambiguous import;查询了解到是 依赖包存在多个不同版本的问题 这样的情况要怎么解决呢? 小编先是将问题抛给了 chatgpt,得到了如下的信息: # 清理缓存 go clea…...
更改Ubuntu22.04锁屏壁纸
更改Ubuntu22.04锁屏壁纸 sudo apt install gnome-shell-extensions gnome-shell-extension-manager安装Gnome Shell 扩展管理器后,打开“扩展管理器”并使用搜索栏找到“锁屏背景”扩展...
ROS2humble版本使用colcon构建包
colcon与与catkin相比,没有 devel 目录。 创建工作空间 首先,创建一个目录 ( ros2_example_ws ) 来包含我们的工作区: mkdir -p ~/ros2_example_ws/src cd ~/ros2_example_ws 此时,工作区包含一个空目录 src : . └── src1 directory, …...
CSRF 跨站请求伪造的实现原理和预防措施
CSRF(跨站请求伪造)概述 CSRF(Cross-Site Request Forgery),即跨站请求伪造,是一种攻击手段,攻击者利用受害者在网站上已认证的身份信息,诱使受害者发起未经授权的请求,从…...
【LeetCode】【算法】22. 括号生成
LeetCode 22. 括号生成 题目描述 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 解题思路 天天到处看答案,看的灵神的解题思路回溯不会写?套路在此!(Pyth…...
WPF+MVVM案例实战与特效(二十五)- 3D粒子波浪效果实现
文章目录 1、案例效果2、案例实现1、文件创建2. 功能代码实现3、粒子功能应用1、前端布局与样式2、代码解释2、 后端功能代码1、案例效果 2、案例实现 1、文件创建 打开 Wpf_Examples 项目、Models 文件夹下创建 3D粒子模型类 ParticleWaveEffectModel.cs 文件。在Tools 文件…...
wsl2安装和使用
WSL(Windows Subsystem for Linux)是一个在 Windows 操作系统上运行 Linux 二进制可执行文件的兼容层。它允许用户在 Windows 上运行 Linux 命令行工具和应用程序。 主要功能 简化开发流程:开发者可以在 Windows 上使用 Linux 的开发工具链。兼容性:支持多种 Linux 发行版,…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

