阶段七-GitEE

Git:版本控制软件

Git的优点

1.1 协同修改
  • 多人并行不悖的修改服务器端的同一个文件。

1.2 数据备份
  • 不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

1.3 版本管理
  • 在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。

1.4 权限控制
  • 对团队中参与开发的人员进行权限控制。

  • 对团队外开发者贡献的代码进行审核——Git 独有。

1.5 历史记录
  • 查看修改人、修改时间、修改内容、日志信息。

  • 将本地文件恢复到某一个历史状态。

  • 分支管理。

  • 许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

2. Git官网

  • 官网地址: Git

3. Git工作流程

代码工作区 ---> 执行git add ---> 暂存区(临时存储)---> 执行git commit ---> 本地库(历史版本)

工作区、暂存区和本地仓库,逻辑上是本地计算机。

  1. 当我们新建一个文件时,文件位于工作区,处于已修改(modified)状态,表明文件已进行了修改,但还没有提交保存;

  2. 通过命令 git add 将其添加到暂存区,文件是已暂存(staged)状态,表示把已修改的文件放到下次提交时要保存的清单中;

  3. 通过命令 git commit将文件放入本地仓库,文件为已提交(commited)状态,表示该文件已经被安全地保存在本地数据库中,到这一步可以说是成功生成了一个新的版本;

  4. 远程仓库用来将本地仓库上传到网络,实现备份、共享和合作。

三、Git的安装

1. 安装步骤

  1. 选择安装目录,全部下一步即可。

2. 验证是否安装成功

  1. 安装完打开Git Bash窗口 。

  2. 输入git --version 输出版本信息证明安装成功 。

四、Git基础指令

基础指令 (工作区, 暂存区 , 本地仓库)

1.git init : 初始化本地仓库

2.git add:文件名 | git add : 将工作区的修改添加到暂存区

3.git commit -m '描述' : 将暂存区的内容提交到本地仓库中

4.git diff 文件名: 查看工作区文件和本地仓库(版本库)的区别

5.git log  : 查看详细日志

   git log --pretty=oneline : 展示一行日志

   git reflog : 简化日志

6.git reset --hard 局部版本号(完整版本号也行) : 恢复版本

7.git rm 文件名 : 删除文件,将删除的文件添加到暂存区

五、常见的远程仓库

1. Github

Github是目前全球最大的代码托管平台。也是Git官方指定的远程仓库。里面包含了全球很多开源项目。

但是由于Github是国外的服务器,所以在国内(尤其网络不是很好的地方)在进行推送内容或拉取内容时的速度可能不是特别快。

2. Gitee

Gitee 中文名称码云。

是国内目前最大的代码托管平台。号称中国版Github。是由开源中国推出的。

近几年在选择远程仓库时Gitee常作为国内开发者首选。

六、远程仓库操作(以码云为例)

1. 在码云注册账号

2. 创建远程仓库

2.1 注册

首先需要注册一直自己的账号。注册后完成登录。

2.2 创建仓库

点击右上角“+” -》 新建仓库 -》创建一个新的仓库。

2.3 填写仓库信息。
  • 仓库名称是必填项。

  • 是否开源选择开源。

  • 取消勾选“使用Readme文件初始化这个仓库”。

3. 推送到远程

远程仓库的操作:

1.创建远程仓库

        1.添加远程仓库地址

如果没有添加会报错

               git remote add orgin 地址

                1.使用仓库的https协议

                        1.将本地仓库中的内容推送到远程库中,需要输入远程仓库的用户名,密码

                        2.出现账号和密码输入错误,再使用时,还会使用错误的账号和密码

                                控制面板 -> 在搜索框搜索凭据 -> 凭据管理器 -> gitee相关 -> 删除记录

                2.使用仓库的SSH协议

                        1.将本地库中的内容推送到远程库时,不需要输入用户名和密码

                         2.生成公钥和私钥,将公钥配置在远程仓库中。官方文档有

         2.推送到远程仓库的主分支中:

                git bush -u origin master

                -u 本地分支和远程分支建立关联,建立关联联系后可以使用git push

                查看本地分支和远程分支是否存在关联关系

                git branch -vv

                

4. 克隆远程仓库到本地

克隆远程仓库的项目:

  git clone https://地址 对于公开仓库允许被克隆,直接克隆

  git clone ssh地址 gitee必须配置了本地git的公钥

七、分支操作

1. 分支概念

在版本控制过程中,多个分支可以同时推进,提高开发效率,各个分支互不影响,增加了容错性。

在版本控制过程中,使用多条线同时推进多个任务。每条线成为一个分支。

开发中常见的分支:

1.1 Master

主分支;主要是稳定的版本分支,正式发布的版本都从Master拉。

1.2 Develop

开发分支;更新和变动最频繁的分支,正常情况下开发都是在Develop分支上进行的。

1.3 Release

预发行分支;一般来说,代表一个版本的功能全部开发完成后递交测试,测试出Bug后进行修复的分支。

1.4 Features

功能分支; 其实Features不是一个分支,而是一个分支文件夹。里面包含了每个程序员开发的功能点。Feature开发完成后合入Develop分支。

1.5 HotFix

最希望不会被创建的分支;这个分支的存在是在已经正式上线的版本中,发现了重大Bug进行修复的分支。

2. 分支指令

默认只会创建主分支,可以创建其他分支.

创建了其他的分支,可以实现同时推进,互不影响

1.查看分支: git branch

2.创建分支: git branch 分支名

3.切换分支: git checkout 分支名

4.将本地分支推送到远程: git push origin 本地分支名:远程分支名

5.合并分支: 切换到主分支,合并其他分支. git merge --no-f 分支名

6.删除本地分支: git branch -d 分支名

7.删除远程分支: git push orgin --delete 远程分支名

未完待续

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

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

相关文章

【开源】基于JAVA的学校热点新闻推送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新闻留言模块2.4 新闻评论模块2.5 新闻收藏模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 新闻类型表3.2.2 新闻表3.2.3 新闻留言表3.2.4 新闻评论表3.2.5 新闻收藏表 四、系统展…

W5500-EVB-Pico评估版介绍

文章目录 1 概述2 板载资源2.1 硬件规格2.2 硬件规格2.3 工作条件 3 参考资料3.2 原理图3.3 尺寸图 (单位 : mm)3.4 参考例程 4 硬件协议栈优势 1 概述 W5500-EVB-Pico是基于树莓派RP2040和完全硬连线TCP/IP控制器W5500的微控制器开发板-基本上与树莓派Pico板相同,但…

深度学习(七):bert理解之输入形式

传统的预训练方法存在一些问题,如单向语言模型的局限性和无法处理双向上下文的限制。为了解决这些问题,一种新的预训练方法随即被提出,即BERT(Bidirectional Encoder Representations from Transformers)。通过在大规模…

Qt Creator可视化交互界面exe快速入门2

上一期介绍的通过代码的方式实现一个简单界面,需要敲小几十行代码,显然是效率低的,这期就介绍下Qt Creator的作用。 Qt Creator的使用: 首先打开我们的Qt Creator 然后点击创建项目,在项目Application里面选择Qt Wid…

嵌入式奇妙之旅:Python与树莓派编程深度探索

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在这个数字化的时代,嵌入式系统的应…

Lua的垃圾回收机制详解

Lua 是一种轻量级的编程语言,广泛用于嵌入到其他应用程序中,尤其是在游戏开发领域。Lua 的内存管理机制采用了自动垃圾收集(Garbage Collection)的方法。以下是Lua内存管理的一些关键方面: 垃圾收集原理概述 Lua 使用…

matlab设置colorbar标题的两种方式

%% 第一种 figure; A rand(3,4,3); A1 A(:,:,1); A2 A(:,:,2); A3 A(:,:,3); contourf(A1,A2,A3,30); colormap(jet);colorbar; my_handlecolorbar; my_handle.Label.String depth/km; my_handle.Label.FontSize 15;%% 第二种 figure; A rand(3,4,3); A1 A(:,:,1); A2 …

c# OpenCvSharp透视矫正六步实现透视矫正(八)

透视矫正,引用文档拍照扫描,相片矫正这块。 读取图像Cv2.ImRead();预处理(灰度化,高斯滤波、边缘检测)轮廓检测(获取到最大轮廓)获取最大面积轮廓的四个顶点标识最小矩形坐标透视矫正显示 完整代码 // 1、…

【中小型企业网络实战案例 二】配置网络互连互通

​【中小型企业网络实战案例 一】规划、需求和基本配置-CSDN博客 热门IT技术视频教程&#xff1a;https://xmws-it.blog.csdn.net/article/details/134398330?spm1001.2014.3001.5502 配置接入层交换机 1.以接入交换机ACC1为例&#xff0c;创建ACC1的业务VLAN 10和20。 <…

异常和智能指针

智能指针的认识 智能指针是一种C语言中用于管理动态内存的工具&#xff0c;它们可以自动管理内存的分配和释放&#xff0c;从而避免内存泄漏和悬空指针等问题。智能指针可以跟踪指向的对象的引用次数&#xff0c;并在需要时自动释放被引用的内存&#xff0c;这极大地提高了内存…

如何查看NX UI对话框内的控件(使用UIFW侦查)

一、概述 在NX二次开发中有很多命令从界面上看起开相似&#xff0c;但实质确不同&#xff0c;个人人为一是出于对软件产权的保护&#xff0c;增加二次开发的难度&#xff0c;二是由于NX在不断地发展和版本交替中为了保留老用户的操作习惯&#xff0c;故意用新控件做成老控件的…

【我与java的成长记】之面向对象的初步认识

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、什么是面向对象面向过程…

与供应商合作:成功供应商管理的六种最佳实践

许多企业低估了他们对外部供应商的依赖程度&#xff0c;也小看了这些供应商关系所涉及的风险。本文将探索企业与外部供应商合作的六种最佳实践&#xff0c;利用它们创建有效的供应商管理流程&#xff0c;从而降低成本和风险&#xff0c;并提高盈利能力。 供应商管理为何重要&a…

【UML】第13篇 序列图(2/2)——建模的方法

目录 三、序列图建模 3.1 概述 3.2 建模的步骤 3.3 举例说明步骤 1.确定主要场景和流程 2.确定参与的对象 3.绘制序列图 4.注意事项 3.4 特殊的情况 序列图是我个人认为&#xff0c;UML中最重要的图之一。 而且序列图&#xff0c;对于业务建模&#xff0c;也有非常好…

SpringBoot + vue3 + TypeScript + activiti7 + 动态表单 的工作流引擎

工作流 SpringBoot vue3 TypeScript activiti7 动态表单 可动态绑定数据库表 的工作流引擎 介绍 兴趣使然&#xff0c;想开发一套自己认为的工作流 项目使用 vue3 elementui-plus ts Activit7 SpringBoot &#xff0c;项目从零搭建 可移植性高&#xff0c;无依赖多余…

C语言学习day10:if语句

程序流程结构&#xff1a; C 语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。 顺序结构:程序按顺序执行&#xff0c;不发生跳转。选择结构:依据是否满足条件&#xff0c;有选择的执行相应功能。循环结构:依据条件是否满足&#xff0c;循环多次执行某段代码…

Ubuntu20.04-查看GPU的使用情况及输出详解

1. 查看GPU的使用情况 1.1 nvidia-smi # 直接在终端得到显卡的使用情况 # 不会自动刷新 nvidia-smi# 重定向到文件中 nvidia-smi > nvidia_smi_output.txt# 如果输出的内容部分是以省略号表示的&#xff0c;可以-q nvidia-smi -q 1.2 nvidia-smi -l # 会自动刷新&#x…

eventbus,在this.$on监听事件时无法在获取数据

问题&#xff1a;vue中eventbus被多次触发&#xff0c;在this.$on监听事件时&#xff0c;内部的this发生改变导致&#xff0c;无法在vue实例中添加数据。 项目场景 一开始的需求是这样的&#xff0c;为了实现两个组件(A.vue ,B.vue)之间的数据传递。 页面A&#xff0c;点击页面…

【论文阅读笔记】SegVol: Universal and Interactive Volumetric Medical Image Segmentation

Du Y, Bai F, Huang T, et al. SegVol: Universal and Interactive Volumetric Medical Image Segmentation[J]. arXiv preprint arXiv:2311.13385, 2023.[代码开源] 【论文概述】 本文思路借鉴于自然图像分割领域的SAM&#xff0c;介绍了一种名为SegVol的先进医学图像分割模型…

C++入门编程二(各类运算符、if、switch、while、for循环等语句)

文章目录 算术运算符前后置运算符赋值运算符比较运算符逻辑运算符if语句1、单行if2、多行if3、多条件if4、嵌套if语句5、案例&#xff1a;三只小猪称体重 三目运算符switch语句while循环语句案例&#xff1a;1、猜数字 do-while循环语句案例&#xff1a;1、水仙花数 for循环语句…