前端-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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件介绍】变声工具RVC本地部署使用方法

RVC(Real-Time Voice Conversion)软件是一种能够实现实时声音转换的技术工具,它允许用户改变自己或他人的语音特征,比如音调、音色等,以达到变声的效果。这种技术在娱乐、游戏、内容创作等领域有着广泛的应用。下面是一…

IntelliJ IDEA 中,自动导包功能

在 IntelliJ IDEA 中,自动导包功能可以极大地提高开发效率,减少手动导入包所带来的繁琐和错误。以下是如何在 IntelliJ IDEA 中设置和使用自动导包功能的详细步骤: 一、设置自动导包 打开 IntelliJ IDEA: 启动 IntelliJ IDEA 并打…

【CANOE】【Capl】【RS232】控制串口设备

系列文章目录 内置函数,来控制传统的串口设备,比如继电器等 文章目录 系列文章目录前言一、控制串口二、自定义相关的参数RS232Configure**函数语法****函数功能****参数说明****返回值****示例代码** 三、回调函数的使用RS232OnSend**函数语法****函数…

AX58100+STM32使用FSMC接口,运行EtherCAT Slave协议栈

目录 简介环境硬件接线MCU一侧的初始化时钟FSMC外部中断timer 协议栈生成EtherCAT SlaveSlave infomationgenerichardwareEtherCAT State MachineSynchronisationApplicaitonProcessDataMailbox OD TOOL 协议栈移植协议栈集成和错误初步解决启动协议栈 应用开发集成到TWINCAT集…

IC数字后端实现之大厂IC笔试真题(经典时序计算和时序分析题)

今天小编给大家分享下每年IC秋招春招必考题目——静态时序分析时序分析题。 数字IC后端笔试面试题库 | 经典时序Timing计算题 时序分析题1: 给定如下图所示的timing report,请回答一下几个问题。 1)这是一条setup还是hold的timing report?…

嵌入式系统与OpenCV

目录 一、OpenCV 简介 二、嵌入式 OpenCV 的安装方法 1. Ubuntu 系统下的安装 2. 嵌入式 ARM 系统中的安装 3. Windows10 和树莓派系统下的安装 三、嵌入式 OpenCV 的性能优化 1. 介绍嵌入式平台上对 OpenCV 进行优化的必要性。 2. 利用嵌入式开发工具,如优…

英伟达发布 Edify 3D 生成模型,可以在两分钟内生成详细的、可用于生产的 3D 资源、生成有组织的 UV 贴图、4K 纹理和 PBR 材质。

英伟达发布 Edify 3D 生成模型,可以利用 Agents 自动判断提示词场景中需要的模型,生成后将他们组合为一个场景。 Edify 3D 可以在两分钟内生成详细的、可用于生产的 3D 资源、生成有组织的 UV 贴图、4K 纹理和 PBR 材质。 相关链接 论文:htt…

抖音短视频矩阵源代码部署搭建流程

抖音短视频矩阵源代码部署搭建流程 1. 硬件准备 需确保具备一台性能足够的服务器或云主机。这些硬件设施应当拥有充足的计算和存储能力,以便支持抖音短视频矩阵系统的稳定运行。 2. 操作系统安装 在选定的服务器或云主机上安装适合的操作系统是关键步骤之一。推…

【Android+多线程】异步 多线程 知识总结:基础概念 / 多种方式 / 实现方法 / 源码分析

1 基本概念 1.1 线程 定义:一个基本的CPU执行单元 & 程序执行流的最小单元 比进程更小的可独立运行的基本单位,可理解为:轻量级进程组成:线程ID 程序计数器 寄存器集合 堆栈注:线程自己不拥有系统资源&#…

NLP论文速读(剑桥大学出品)|分解和利用专家模型中的偏好进行改进视觉模型的可信度

论文速读|Decompose and Leverage Preferences from Expert Models for Improving Trustworthiness of MLLMs 论文信息: 简介: 本文探讨的背景是多模态大型语言模型(MLLMs),这类模型通过结合视觉特征和文本空间来增强语…

CentOS8.5.2111(7)完整的Apache综合实验

一、实验目标 1.掌握Linux系统中Apache服务器的安装与配置; 2.掌握个人主页、虚拟目录、基于用户和主机的访问控制及虚拟主机的实现方法。 二、实验要求 练习使用linux系统下WEB服务器的配置方法。 三、实验背景 重庆工程学院为筹备“重庆工程大学”特申请了c…

零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu

1.为啥使用Linux做嵌入式开发 能广泛支持硬件 内核比较高效稳定 原码开放、软件丰富 能够完善网络通信与文件管理机制 优秀的开发工具 2.什么是Ubuntu 是一个以桌面应用为主的Linux的操作系统, 内核是Linux操作系统, 具有Ubuntu特色的可视…

JVM类加载和垃圾回收算法详解

文章目录 JVM一、JVM运行流程1. JVM执行流程 二、JVM运行时数据区1. 程序计数器(线程私有)2. 虚拟机栈 (线程私有)3. 本地方法栈(线程私有)4. 堆(线程共享)5. 元空间(线程…

iOS 17.4 Not Installed

0x00 系统警告 没有安装 17.4 的模拟器,任何操作都无法进行! 点击 OK 去下载,完成之后,依旧是原样! 0x01 解决办法 1、先去官网下载对应的模拟器: https://developer.apple.com/download/all/?q17.4 …

day04 企业级Linux安装及远程连接知识实践

1. 使用传统的网卡命名方式 在启动虚拟机时,按tab键进入编辑模式 添加命令: net.ifnames0 biosdevname0 这样linux系统会使用传统的网卡命名,例如eth0、eth1…… 2. 快照 做系统关键操作时,一定要使用快照(先将系统关机) 3.…

人体特定吸收率 (SAR) 分布建模

ANSYS HFSS 提供了一种建模 SAR 分布的方法! 2020 年对我们所有人来说都是充满挑战的一年,由于 COVID 19 限制和居家隔离,许多工程师不得不推迟开发时间表。ANSYS HFSS 为所有工程师提供了一种在家安全工作的好方法。隔离期间,您…

.NET9 - Swagger平替Scalar详解(四)

书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。 下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。…

计算(a+b)/c的值

计算(ab)/c的值 C语言代码C语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 给定3个整数a、b、c,计算表达式(ab)/c的值,/是整除运算。 输入 输入仅一行&…

PICO 获取设备号 SN码

Unity版本 2020.3.42f1c1PICO SDK版本PICO Unity Integration SDK-3.0.5-20241105Pico设备pico 4ultra 注意 此api暂时只测试企业版本 pico 4ultra 代码 using Unity.XR.PICO.TOBSupport;private void Awake() {bool result PXR_Enterprise.InitEnterpriseService();Debug.L…

【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)

第8章 数据仓库Hive的安装和使用 8.1 Hive的安装 8.1.1 下载安装文件 访问Hive官网(http://www.apache.org/dyn/closer.cgi/hive/)下载安装文件apache-hive-3.1.2-bin.tar.gz 下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的…