通用开发技能系列: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 仓库地址 分支名
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之命令模式(上)

命令模式 1)概述 1.定义 命令模式(Command Pattern) 将一个请求封装为一个对象,可以用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 2.作用 命令模式可以将请求发送者和接收者完全解耦&am…

Redis教程——数据类型(字符串、列表)

上篇文章我们学习了Redis教程——Redis入门,这篇文章我们学习Redis教程——数据类型(字符串、列表)。 Redis数据类型有:字符串、列表、哈希表、集合、有序集合、地理空间、基数统计、位图、位域和流。 字符串String 字符串类型…

UML 绘制工具 starUML 入门介绍

拓展阅读 常见免费开源绘图工具 OmniGraffle 创建精确、美观图形的工具 UML-架构图入门介绍 starUML UML 绘制工具 starUML 入门介绍 PlantUML 是绘制 uml 的一个开源项目 UML 等常见图绘制工具 绘图工具 draw.io / diagrams.net 免费在线图表编辑器 绘图工具 excalidr…

CPU+GPU+NPU三位一体AI边缘控制器,三屏异显,搭载RK3588处理器

XMS-201采用了Rockchip RK3588八核64位处理器,集成ARM Mali-G610 MP4四核GPU,内置AI加速器NPU,可提供6Tops算力,支持主流的深度学习框架;性能强劲的RK3588可为各类AI应用场景带来更强大的性能表现,适用于机…

Agent相关概念(更新中)

文章目录 Agent是什么Agent中要求LLM需要具备哪些能力Function Call(工具调用)Plan(规划)memory推理(总结)能力 Agent的实现方式PlanAndExecuteReact Agent是什么 在LLM语境下,Agent可以理解为…

八股面试——数据库——索引

索引的概念 B树的概念: 索引的作用 聚簇索引与非聚簇索引 聚簇索引就是主键值,在B树上,通过主键大小(数据在B树叶子节点按主键顺序排序)寻找对应的叶子节点,叶子节点保存的一整条记录。 非聚簇索引&#x…

bugku-misc 啊哒

拿到题目得到一张图片 尝试查看属性看到照相机型号 应该是加密字符,用010打开图片查看源码 文件结尾看到50 4B,是压缩包形式并且看到flag.txt 猜测是文件包含 kali用foremost尝试分离图片 得到zip文件,打开显示需要密码 想到一开始图片属…

MXNet的下载安装及问题处理

1、MXNet介绍: MXNet是一个开源的深度学习框架,以其灵活性和效率著称,支持多种编程接口,包括Python、C、R、Julia、Scala等。MXNet支持大规模分布式训练,同时兼顾CPU和GPU的计算资源,尤其擅长于模型并行和数…

android webview测试

启动手机自带的浏览器: from time import sleepfrom appium import webdriverclass TestBrowser:def setup_method(self):desire_caps {"platformName": "android","platformVersion": "12","deviceName": &qu…

90天玩转Python—06—基础知识篇:Python中的七大基础数据类

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

前端开发之Element树结构组件el-input的type=“password“时候账号密码自动填充解决方案

Element树结构组件el-input的type“password“时候账号密码自动填充解决方案 前言效果图解决方案 前言 在使用element的input的password当参数和login的参数相同时,在浏览器保存的用户名密码会自动填充,导致input附加上默认值 使用场景一般是在用户管理…

P1123 取数游戏(dfs算法)

题目描述 一个 NM 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。 输入格式 第…

阿里云ICP备案工信部短信核验详细流程,1分钟搞定教程!

网站ICP备案或APP备案通过云厂商的备案初审后,需要在工信部完成短信核验操作,本文云服务器吧yunfuwuqiba.com以阿里云备案为例,来详细说明工信部短信核验详细流程,非常简单: 阿里云备案提交到阿里云初审,初…

Vector - CAPL - XCP介绍_01

XCP协议全称为X Calibration Protocol,它是一种广泛使用在标定校准和测量的一种通信协议,由 ASAM 工作组标准化, 可以在不同的总线系统上使用,例如:XCP on CAN、XCP on CAN FD、XCP on Ethernet、XCP on FlexRay、XCP …

基于HIL+RCP的三相整流电路实验

今天给大家分享的是利用easygo netbox的模型文件,仿真三相整流的电路实验。 首先,打开Desksim软件,载入这个模型文件。然后切换到User Interface界面,自定义模型的监控界面。 我们拖入chart,就可以选择观测模型的三相电…

全面探究 LangChain Text Splitters

全面探究 LangChain Text Splitters 0. 引言1. 文本拆分器的类型2. 探究各个文本拆分器2-1. Split by HTML header2-2. Split by HTML section2-3. Split by character2-4. Split code2-5. MarkdownHeaderTextSplitter2-6. Recursively split JSON2-7. Recursively split by ch…

JS-25-浏览器和浏览器对象

一、浏览器 由于JavaScript的出现就是为了能在浏览器中运行,所以,浏览器自然是JavaScript开发者必须要关注的。 目前主流的浏览器分这么几种: IE 6~11:国内用得最多的IE浏览器,历来对W3C标准支持差。从IE10开始支持E…

MQ简介和面试题

一,什么是MQ MQ全称是Mwessage Queue(消息队列),是在消息传输过程中保存消息的容器,多用于分布式系统之间进行通信,解耦和低耦合性 二,常见的MQ产品 RebbitMQ,RocketMQ, ActiveMQ, Kafka, ZeroMQ, MetaMQ 其中我们…

【stm32】SPI通信简介

SPI通信 SPI简介部分 所有SPI设备的SCK、MOSI、MISO分别连在一起 从主机引出多根SS选择线,分别接到每个从机的SS输入端,主机的SS线都是输出,从机的SS线都是输入,SS线 是低电平有效,同一时间主机只能选择一个从机 只能…

【C++11】右值引用 + 移动语义 + 完美转发(重点)

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…