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

通用开发技能系列:Git

云原生学习路线导航页(持续更新中)

本文是 通用开发技能系列 文章,主要对编程通用技能Git进行学习

1.为什么使用版本控制系统

  • 版本控制系统可以解决的问题
    • 代码备份很重要
    • 版本控制很重要
    • 协同工作很重要
    • 责任追溯很重要
  • 常见的版本控制系统
    • Git
    • SVN

2.Git与SVN对比

2.1.SVN

2.1.1.SVN工作原理

在这里插入图片描述
在这里插入图片描述

2.1.2.SVN弊端

在这里插入图片描述
如果服务器网络不好,有可能开发人员无法下载到最新的版本

2.2.Git

2.2.1.Git的产生

在这里插入图片描述

2.2.2.实现原理

  • 服务器上有一个远程仓库,各个开发人员的本地仓库也有各自的本地仓库。
  • 它们都存储着代码的各个版本

在这里插入图片描述

2.2.3.Git优点

在这里插入图片描述
如果服务器网络不好,开发人员还可以通过本地仓库获得代码版本

3.Git的下载与安装

  • Git官网下载地址:http://git-scm.com/downloads
  • 根据自己系统,下载安装即可

4.Git的本地仓库基本工作流程

  • 在本地仓库中存在3个区
    • 工作目录(Working Tree)
    • 暂存区(Index)
    • 本地历史仓库(Repository)
  • 我们平时写代码时,会把代码写在工作目录,完成一个模块工作后,提交代码进行保存。
  • 注意:
    • 提交代码必须先把代码放到暂存区,然后才可以提交本地历史仓库。不可以直接交到本地历史仓库。
    • 我们可以通过checkout切换分支,将各个分支的代码拉取到工作目录进行使用。

在这里插入图片描述

5.Git的使用

5.1.常用Git命令

  • https://blog.csdn.net/qq_44663816/article/details/131138039
  • https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/79054792

5.2.分支管理

5.2.1.分支是什么

  • 分支就是由每次提交的代码,串成的一条时间线。
    在这里插入图片描述
  • 对分支的理解
    • 你学着学着,发现有一个功能需要尽快实现,但你又不想让该功能的开发影响了手里已经写好的代码。
    • 那么就可以开一个新的分支,让那个分支去开发新功能。
    • 等新功能开发好了,与手里的主线进行合并,就可以兼顾。
  • 分支的好处
    • 各个分支,并行工作,互不打扰
    • 多条分支可以合并。
  • 分支的应用场景
    在这里插入图片描述

5.2.2.分支的工作流程

  • 总结起来,分支的工作就4种操作:
    • 创建新分支
    • 切换分支
    • 合并分支
    • 删除分支
  • 版本管理中存在两种指针:master指针、head指针
    • 理解git中的head和master

5.2.3.分支的操作命令

  • 创建新的分支
    • git branch 新的分支名:该指令会创建一个新的分支指针
  • 切换分支
    • git checkout 分支名
  • 合并分支
    • git merge 分支名2:在分支1下输入这条命令,就代表将分支2合并到分支1上去。
    • 理论上是可以将主分支合并到旁分支上去的,但是不推荐。
  • 删除分支
    • git branch –d 分支名
  • 查看分支
    • git branch

6.Git的远程仓库的工作流程

6.1.远程仓库是什么

  • 远程仓库就是一个代码的托管平台,直白点说就是部署在公网上的一个网站

6.2.远程仓库和本地仓库之间的工作流程

在这里插入图片描述

  • 刚开始远程仓库、本地仓库里什么都没有。
  • 程序员a写了一份代码,通过add、commit命令提交到本地历史仓库后,使用push命令将该代码版本推送到远程仓库中。
  • 此时,程序员b需要开发,此时她的电脑上什么都没有,所以需要将远程仓库中所有的代码版本都复制一份。
    • 因此她使用了clone命令,该命令 会将远程仓库中所有的代码版本都复制一份到本地历史仓库。
  • 当程序员b修复了一个bug后,通过add、commit命令提交到本地历史仓库后,使用push命令将该代码版本推送到远程仓库中。
  • 此时程序员a想要获取最新的代码版本,由于他电脑上已经有了一部分,所以无需clone,只需使用pull命令更新本地仓库与远程仓库不同的部分即可。

6.3.常见代码托管平台

  • GitHub
    在这里插入图片描述

  • Gitee
    在这里插入图片描述

7.演示Gitee的使用

7.1.本地仓库已有-远程仓库为空

7.1.1.创建远程仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1.2.配置SSH公钥

  • 创建好远程仓库,还不能直接将本地仓库的项目push到远程仓库,在此之前需要配置SSH公钥
  • 配置步骤
    在这里插入图片描述
  • 设置Git账户
    在这里插入图片描述
  • 生成SSH公钥
    • 在生成SSH公钥之前,可以使用这个命令查看以前是否生成过SSH公钥
      cd ~/.ssh
      
    • 生成SSH公钥
      # 询问命令放在哪,敲3次回车即可
      ssh-keygen –t rsa –C “邮箱”
      
    • 查看生成的SSH公钥
      cat ~/.ssh/id_rsa.pub
      
  • 设置SSH公钥到远程仓库

    在这里插入图片描述在这里插入图片描述
  • 公钥测试
    ssh -T git@gitee.com
    
    • 出现绿色successfully,表示配置成功
      在这里插入图片描述

7.1.3.推送本地项目到远程仓库

  • 远程仓库地址一般很长,老写不方便,先给远程仓库地址,设置一个别名 origin
    git remote add origin git@gitee.../hello-world.git
    
  • 推送本地项目到远程仓库中
    git add .
    git commit -m "init repo"
    git push -u 仓库名称 分支名
    

7.1.4.远程仓库已有-本地仓库为空

  • 克隆仓库
    git clone 仓库地址
    
  • 拉取代码
    git pull 仓库地址 分支名
    

相关文章:

通用开发技能系列:Git

云原生学习路线导航页(持续更新中) 本文是 通用开发技能系列 文章,主要对编程通用技能Git进行学习 1.为什么使用版本控制系统 版本控制系统可以解决的问题 代码备份很重要版本控制很重要协同工作很重要责任追溯很重要 常见的版本控制系统 Gi…...

最新怎么订阅OnlyFans上喜欢的博主,详细教程

大家好,本文教大家如何用虚拟信用卡在 Onlyfans 订阅,链接在浏览器打开地址https://bewildcard.com/i/GPT310,虚拟卡开好之后,用支付宝充值就可以进行订阅OnlyFans平台的博主了。 什么是OnlyFans? OnlyFans 是一个提…...

Mysql故障和优化

一、MySQL故障 二、MySQL优化 1.硬件优化: 2.数据库设计与规划 1.提前估计数据量,使用什么存储引擎 2.数据库服务器专机专用,避免额外的服务可能导致的性能下降和不稳定性 3.增加多台服务器,以达到稳定、高效的效果。主从同步、…...

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理 文章目录 Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理磁盘清理工具 使用“运行”命令访问磁盘清理利用存储感知自动管理空间清理WinSxS文件夹结合手动清理策略 小结删除临时文件总结&…...

14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)

采用存储目标字符下标的方法,此题的想法比较新奇,故予以记录。 存好下标之后,可以先定位好启始的字符,然后去搜结尾字符符合长度k并且最靠近启始字符的下标,找到之后可以直接取到这个下标之后的所有下标,因…...

Android 系统大致启动流程

Android启动流程大体为:BootRom -> BootLoader -> Kernel -> Init -> Zygote -> SystemServer ->Launcher 1、Loader层 1.1、Boot ROM 电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行&#xff0…...

【Web】2024红明谷CTF初赛个人wp(2/4)

目录 ezphp playground 时间原因只打了2个小时,出了2道,简单记录一下 ezphp 参考文章 PHP filter chains: file read from error-based oracle https://github.com/synacktiv/php_filter_chains_oracle_exploit 用上面的脚本爆出部分源码&#xff…...

stable-diffusion-webui安装教程

现在AI开始进入绘画领域,并且能自动根据文本来创建图片出来,这是一个划时代的进步。 这时候,我也不能落后,要紧跟上时代的步伐,那么也来学习一下stable-diffusion的使用,这样也算多一项对技术的认识,提高对AI的认知。 从网上看到很多stable-diffusion-webui的安装,其…...

如何魔改 diffusers 中的 pipelines

如何魔改 diffusers 中的 pipelines 整个 Stable Diffusion 及其 pipeline 长得就很适合 hack 的样子。不管是通过简单地调整采样过程中的一些参数,还是直接魔改 pipeline 内部甚至 UNet 内部的 Attention,都可以实现很多有趣的功能或采样生图结果。 本…...

解放办公室的利器!让证卡打印机轻松应对繁忙工作场景

在现代办公室中,证卡打印机已经成为不可或缺的工作利器。但是,在繁忙的工作场景中,我们经常忽视了它的保养和清洁。然而,正确的清洁和维护不仅可以延长打印机的寿命,还可以提高工作效率,确保每一次打印都是…...

2012年认证杯SPSSPRO杯数学建模A题(第二阶段)蜘蛛网全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 A题 蜘蛛网 原题再现: 第二阶段问题   现在我们假设一个具体的环境。假设有一个凸多边形的区域,蜘蛛准备在这个区域(或其一部分)上结一张网。   问题一: 在区域的边界上安置有若干…...

ES学习日记(七)-------Kibana安装和简易使用

前言 首先明确一点,Kibana是一个软件,不是插件。 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic stack 成员之一,设计用于和Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索,…...

react 父子组件的渲染机制 | 优化手段

文章目录 父子组件的渲染机制优化手段与实践写法父组件:下发stateprops.children 传递无状态组件props传递组件 React.memo缓存子组件与useCallback结合 父子组件的渲染机制 渲染分初次渲染和重新渲染 React组件会在两种情况下发生重新渲染 当组件自身的state发生…...

elementPlus el-table动态列扩展及二维表格

1、循环列数据源&#xff0c;动态生成列 <template><div><el-table ref"table" :data"pageData.tableData" stripe style"width: 100%"><el-table-column v-for"column in pageData.columns" :key"column.p…...

vitepress系列-04-规整sideBar左侧菜单导航

规整左侧菜单导航 新建navConfig.ts 文件用来管理左侧导航菜单&#xff1a; 将于其他的配置分开&#xff0c;避免config.mts太大 在config目录下&#xff0c;新建 sidebarModules文件目录用来左侧导航菜单 按模块进行分类&#xff1a; 在config下新建sidebarConfig.ts文件&…...

golang slice总结

目录 概述 一、什么是slice 二、slice的声明 三、slice的初始化、创建 make方式创建 创建一个包含指定长度的切片 创建一个指定长度和容量的切片 创建一个空切片 创建一个长度和容量都为 0 的切片 new方式创建 短声明初始化切片 通过一个数组来创建切片 声明一个 …...

MySQL 数据库的优化

目录 一. 常见故障 单实例常见故障 1. 故障一 2. 故障二 3.故障三 4. 故障四 5. 故障五 6.故障六 7.故障七 8.故障八 主从环境常见故障 1.故障一 2. 故障二 3. 故障三 二. 优化 1.硬件方面 1.1 关于CPU 1.2 关于内存 1.3 关于磁盘 2. 配置文件优化 关于引擎…...

Redis 的主从复制、哨兵和cluster集群

目录 一. Redis 主从复制 1. 介绍 2. 作用 3. 流程 4. 搭建 Redis 主从复制 安装redis 修改 master 的Redis配置文件 修改 slave 的Redis配置文件 验证主从效果 二. Redis 哨兵模式 1. 介绍 2. 原理 3. 哨兵模式的作用 4. 工作流程 4.1 故障转移机制 4.2 主节…...

Unity进阶之路(2)UI Toolkit

UI Toolkit是Unity内置的一个游戏UI解决方案。借鉴了web前端的设计模式。 web前端使用css&#xff0c;html&#xff0c;js。 其中css定义样式 html定义层级 js处理逻辑 UI Toolkit则是使用uss&#xff0c;uxml&#xff0c;C# 如果直接使用Unity提供的可视化UI创建工具创建…...

实现Hello Qt 程序

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、使用 "按钮" 实现 1、纯代码方式实现 2、可视化操作实现 &#xff08;1&#xff09…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构

React 实战项目&#xff1a;微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇&#xff01;在前 29 篇文章中&#xff0c;我们从 React 的基础概念逐步深入到高级技巧&#xff0c;涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长&#xff0c;WebRTC作为开源实时通信技术&#xff0c;为浏览器与移动应用提供免插件的音视频通信能力&#xff0c;在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能&#xff0c;对实时…...

C/Python/Go示例 | Socket Programing与RPC

Socket Programming介绍 Computer networking这个领域围绕着两台电脑或者同一台电脑内的不同进程之间的数据传输和信息交流&#xff0c;会涉及到许多有意思的话题&#xff0c;诸如怎么确保对方能收到信息&#xff0c;怎么应对数据丢失、被污染或者顺序混乱&#xff0c;怎么提高…...