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

Lab———Git使用指北

Lab———Git使用指北

🤖:使用IDEA Git插件实际工作流程


💡 本文从实际使用的角度出发,以IDEA Git插件为基本讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目,在本地分支进行开发,把分支代码提交到远程分支 以及 管理者如何管理Master分支 四个角度来进行书写,相信看完本文后你也可以快速上手使用和实践Git。


⭐从远程仓库中拉取项目

  1. 在Gitee上找到远程仓库的位置,复制该项目的链接。

  2. 在IDEA中选择使用版本控制软件来新建项目。

  3. 将刚刚复制的项目链接复制到URL当中。

  4. 使用Maven一键加载工程文件。(右键项目名称 Build as maven project)

  5. 把data文件夹放到项目目录之下(注意data文件夹不要让git管理,千万不要提交data文件)

    具体在IDEA中的流程如下所示:

在这里插入图片描述


💡使用Maven的好处:

我们使用Maven来管理我们的工程文件,使用Maven的好处是显而易见的,Maven把所有的依赖都写入了POM.XML文件当中,当我们使用不同的IDE工具(IDEA,Esplice)使用或开发我们的工程文件时工程项目的所有依赖的JAR包都在POM文件当中,我们只需要点击 Add as Mven Project就可以在本地部署好工程文件


⭐⭐ 在本地分支进行开发

💡 使用Git来进行项目管理的目的:当一个团队同时需要对软件项目进行开发时,可以让团队成员针对被分配的任务并行的进行开发,从而提高项目开发效率。

当使用Git项目来管理本地的项目后:我们就可以在本地进行项目开发了。

当你完成了第一步(从远程仓库拉取项目)之后默认显示的项目是主分支。请注意,当你需要编写代码时并不建议你在本地的主分支当中进行编写。本地主分支的作用只应该是让本地主分支与远程主分支保持一致【也就是说你需要在本地主分支中频繁地拉取代码 update peoject】你需要建立一个本地自己的分支,在自己的分支内进行代码编写。

在本地自己分支内进行开发的流程如下所示:

  1. 需要在本地创建一个新的分支
  2. 这个分支的名字要和远程分支的名字一样
  3. 让本地分支跟踪远程分支
  4. 编写代码

请添加图片描述

⭐⭐⭐ 把分支代码提交到远程分支


💡 主分支是远程仓库最重要的一个分支.通常来讲主分支的代码必须是稳定的代码【一个稳定的版本】因为团队的所有人员都会针对主分支的代码进行开发。


当编写完代码之后,你需要把本地自己分支的代码提交到远程仓库自己分支当中,只有当你把自己的代码提交到远程仓库之后,远程仓库的管理员才能对你的代码进行审核,当管理员觉得代码没有问题后管路员会将你的代码Merge(合并)到主分支形成一个稳定的版本。

在IDEA的右上角有一些常用的Git操作按钮它们分别是:update commit push

update project 点击按钮后会使 当前本地分支(当前所在分支)的代码 与远程分支上的代码保持一致。

commit 每次要切换分支时;都要使用commit按钮 把工作代码提交到Git的工作区当中。


🌟 commit提交规范:采用类型+具体描述的方式 :
feat:新功能或功能变更;
fix:修复某些Bug;
docs:改动了某些文档或注释;
style:修改了代码风格;
refactor:重构了某些代码


push 点击按钮后会把在本地分支中的操作 提交到远程跟踪的分支中。

❗❗每次要提交工作代码之前都需要检查当前本地分支的代码是否和主分支保持一致,换句话说就是自己当前开发的代码是不是基于最新代码(Master Branch)上编写的。如果你想提交代码到自己的分支具体来讲你有两种方法【推荐使用基于Rebase的方法】:

  • 基于Merge方法提交代码

    1. 在本地自己分支开发完代码后 进行 commit操作
    2. Checkout 操作 到主分支
    3. 在 主分支上进行 update project操作
    4. 在本地分支上选择主分支进行 merge into current 操作
    5. 如果出现冲突请解决冲突
    6. 把自己分支的代码Push操作 到远程分支

    具体IDEA操作如下图所示:
    请添加图片描述

  • 基于Rebase方法提交代码

    ReBase的本意是让远程分支保持干净清爽。并且团队开发人员使用Rebase方法提交也可以减轻主分支管理者的管理成本(把遇到冲突后解决冲突的操作交给了开发人员进行),提升管理和开发效率。

    1. 切换到本地Master主分支;拉取主分支的最新代码(Update Project)
    2. 切换到自己的分支 CheckOut 【branchName】
    3. 在自己的分支内选择 master brach【主分支】并选择 Rebase currented onto selected
    4. 解决遇到的冲突问题(confilicts)
    5. 把代码提交到自己的分支(push)
      在这里插入图片描述

❗❗Other:管理者如何管理Master分支

  1. RollBack操作
  2. 主分支内不要使用rebase操作
  3. 当远程仓库上传了多余的文件时怎么办?

因为本文是偏实用向,只是大概告诉了大家我们如何使用Git来进行多人协作代码开发,其中有许多类似原理的知识并没有进行讲解,如果在实际开发过程中出现了什么问题也可以自行进行搜索。下面附上了学习Git很好的学习资料,希望对你有用 😀

  1. 链接: Gitee-官网操作说明
  2. 链接:B站Git操作讲解视频

相关文章:

Lab———Git使用指北

Lab———Git使用指北 🤖:使用IDEA Git插件实际工作流程 💡 本文从实际使用的角度出发,以IDEA Git插件为基本讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目,在本地分支进行开发&#x…...

ChatGPT的工作原理:从输入到输出

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…...

redis数据库与主从复制

目录 一 基本操作 二 执行流程 三 reids持久化 四 rdb和aof持久化的过程 五 为什么会有内存碎片 六 redis组从复制 一 基本操作 set :存放数据 例如 set 键值 内容 set k kokoko k就是键值 kokoko就是内容 get:获取数据 例如 get k 就会出来 k对应的数据 keys 查询键…...

js加载和长任务

js加载和长任务 本文将讲解以下浏览器如何加载js,并介绍一些可以提高网页加载速度的方法。 Evaluate Script 如果我们在devtools的performance中分析过网站的加载性能,可能会看到一个很长的任务,叫做Evaluate Script. 在这种情况下&#x…...

利用Stable diffusion Ai 制作艺术二维码超详细参数和教程

大家有没有发现最近这段时间网上出现了各种各样的AI艺术二维码,这种二维码的出现,简直是对二维码的“颠覆式创新”,直接把传统的二维码提升了一个维度!作为设计师的我们怎么可以不会呢? 今天就教大家怎么制作这种超有艺…...

【C语言课程设计】图书管理系统

引言: 图书管理系统是一个重要的信息管理系统,对于图书馆和书店等机构来说,它能够方便地管理图书的录入、显示、查询、修改和删除等操作。本实验基于C语言开发了一个简单的图书管理系统,通过账户名和密码进行系统访问和权限控制&a…...

在 ArcGIS Pro 中使用 H3 创建蜂窝六边形

H3是Uber开发的分层索引系统,它使用六边形来平铺地球表面。H3在二十面体(一个具有20个三角形面和12个顶点的形状)上构建其六边形网格。由于仅用六边形不可能平铺二十面体,因此每个分辨率需要12个五边形来完成网格。分层索引网格意味着每个六边形都可以细分为子单元六边形。…...

创建Electron项目

一、使用vite 构建 electron项目 npm init vitelatest Need to install the following packages:create-vitelatest Ok to proceed? (y) y √ Project name: ... CertificateDownload √ Package name: ... certificatedownload √ Select a framework: Vue √ Select a var…...

Spring Boot实践一

一、Spring Boot简介 Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、方便的方式来创建基于Spring的应用程序,而无需繁琐的配置。Spring Boot通过自动配置和约定大于配置的方式,使得开发者可以更加专注于业务逻辑的实现&…...

简单认识NoSQL的Redis配置与优化

文章目录 一、关系型数据库与非关系型数据库1、关系型数据库:2、非关系型数据库3、关系型数据库和非关系型数据库区别:4、非关系型数据库应用场景 二.Redis1、简介2、优点:3、Redis为什么这么快? 三、Redis 安装部署1、安装配置2、…...

开发一个RISC-V上的操作系统(二)—— 系统引导程序(Bootloader)

目录 文章传送门 一、什么是Bootloader 二、简单的启动程序 三、上板测试 文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导…...

Git安装与学习

Git学习网站 Git安装教程 镜像网站 https://registry.npmmirror.com/binary.html 镜像下载是网站对服务器的一个保护措施之一,就是A站点下载的数据同 B站点下载的数据完全一样,b站点就是A站点的一面镜子。 所以镜像下载下来和原站点一摸一样。...

【Docker】docker中容器之间通信方式

文章目录 1. Docker容器之间通信的主要方式1.1 通过容器ip访问1.2. 通过宿主机的ip:port访问1.3. 通过link建立连接(官方不推荐使用)1.4. 通过 User-defined networks(推荐) 2. 参考资料 1. Docker容器之间通信的主要方式 1.1 通…...

算法-归并排序-JAVA

下面是Java实现归并排序的示例代码&#xff1a; public class MergeSort {public void mergeSort(int[] arr) {if (arr null || arr.length < 1) {return;}int[] temp new int[arr.length];mergeSort(arr, temp, 0, arr.length - 1);}private void mergeSort(int[] arr, …...

Flask 进阶

Flask 如何访问项目以外的文件 在工作中&#xff0c; 要在项目里展示一些额外的文件&#xff0c; 包括但不限于静态的html。图片&#xff0c; log&#xff0c; 其他的都还好说&#xff0c; 但是当html的时候我就开始犯难了&#xff0c; 因为数量过多 我并不想把它塞进我项目的t…...

home-assistant整合sso

其他软件都可以通过nginx直接做代理添加鉴权&#xff0c;但是这个hass果然是用户安全隐私很强&#xff0c;做代理需要配置白名单&#xff0c;而且支持的三方鉴权都不太适合我的需求&#xff0c;非要改源码才行&#xff0c;后来我发现不用改源码的折中方式 参考文章 External …...

Ip-Limit: 轻量级注解式IP限流组件(二)

author: van , ggfanwentaogmail.comIp-Limit-Example: 轻量级注解式IP限流组件使用样例 项目简介 该项目为ip-limiter的使用示例项目。 ip-limiter地址&#xff1a; https://github.com/DDAaTao/ip-limiter 示例项目文件树 └─example├─handler│ └─BaseException…...

【C++】开源:Redis数据库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Redis数据库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…...

TCP/IP网络编程 第二十四章:制作HTTP服务器端

实现简单的Web服务器端 现在开始在HTTP协议的基础上编写Web服务器端。先给出Windows平台下的示例&#xff0c;再给出Linux下的示例。在这里我假设各位都有了有关HTTP的知识&#xff0c;如果不知道HTTP协议的具体内容可以参考的往期博客&#xff0c;有了这些基础就不难分析源代…...

React 前端应用中快速实践 OpenTelemetry 云原生可观测性(SigNoz/K8S)

OpenTelemetry 可用于跟踪 React 应用程序的性能问题和错误。您可以跟踪从前端 web 应用程序到下游服务的用户请求。OpenTelemetry 是云原生计算基金会(CNCF)下的一个开源项目&#xff0c;旨在标准化遥测数据的生成和收集。已成为下一代可观测平台的事实标准。 React(也称为 Re…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...