Git使用【下】

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析(3)

在这里插入图片描述


目录

  • 👉🏻标签管理
    • 理解标签
    • 标签运用
  • 👉🏻多人协作一
    • 准备工作
    • 协作开发
    • 将内容合并进master
  • 👉🏻多人协作二
    • 协作开发(1)
    • 将内容合并进master
  • 👉🏻远程分⽀删除后,本地 git branch -a 依然能看到的解决办法
  • 👉🏻企业级开发模型

👉🏻标签管理

理解标签

标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?相较于难以记住的 commit idtag 很好的解决这个问题,因为 tag ⼀定要给⼀个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。
在这里插入图片描述

标签运用

在 Git 中,可以使用以下命令来创建、查看和管理标签:

  1. 创建标签:

    • 轻量标签(Lightweight Tag):只是一个特定提交的引用,没有额外的信息。
      git tag <tag-name>
      //如果tag后没有指出commit id,则默认给最新的commit id打上标签
      
    • 附注标签(Annotated Tag):包含额外的信息,如作者、日期、说明等。
      git tag -a <tag-name> -m "Tag message"
      
  2. 查看标签:

    • 查看所有标签:
      git tag
      
    • 查看指定标签的详细信息:
      git show <tag-name>
      
  3. 切换到标签:

    • 可以切换到某个标签对应的提交状态,但是不能在标签上进行修改。
      git checkout <tag-name>
      
  4. 删除标签:

    • 删除本地标签:
      git tag -d <tag-name>
      
    • 删除远程标签:
      git push origin --delete <tag-name>
      
  5. 共享标签:

    • 将本地标签共享到远程仓库:
      git push origin <tag-name>
      
    • 所有本地标签一次性共享到远程仓库
      git push origin --tags
      

需要注意的是,标签默认只会推送到远程仓库的本地副本。如果想将标签共享给其他人,需要使用推送命令将标签推送到远程仓库。

另外,还可以使用 -l 选项来过滤标签,使用 --contains 来查找包含某个提交的标签,以及使用 --list 来列出符合指定模式的标签等。

综上所述,以上是一些常用的标签管理命令。在实际使用中,可以根据项目需要和个人习惯来灵活运用这些命令。

👉🏻多人协作一

在这里插入图片描述
此次多人协作目标
在这里插入图片描述
这里如果我们单独完成这一项任务,开发者1的开发环境在我们买的云服务器上,
开发者2的开发环境在本地windows上。

准备工作

✢:先在远程仓库中创建分支(这个操作可以在gitee上完成,也可以在本地完成)
我们直接用前者方法完成
在这里插入图片描述
此时远程仓库和本地仓库的情况如下:
在这里插入图片描述

git branch -r //可以在本地查看远程仓库分支

在这里插入图片描述
此时我们想让本地仓库同步远程仓库中的dev分支。
我们可以用git pull 拉取远程仓库
在这里插入图片描述
开发者1的准备工作已经好了。

此时我们要在window下为开发者2进行部署准备工作。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时当前文件夹就会clone远程仓库了
在这里插入图片描述

远程仓库和本地仓库的情况如下:
在这里插入图片描述

协作开发

在这里插入图片描述
这里我们要在本地开发,肯定不能在master分支上进行开发,所以要再创建一个分支dev。
这里我们做了一个操作:将分支dev和origin/dev连接起来了。
用命令可查看分支连接关系

git branch -vv 

☃️这里我们补充一下本地仓库与远程仓库连接的知识点。

将本地仓库与远程仓库连接起来有以下好处:

  1. 备份和恢复:通过将本地仓库推送到远程仓库,可以实现代码的备份。如果本地仓库发生损坏或意外删除,可以从远程仓库中恢复代码。

  2. 协作开发:多人协作开发时,通过连接远程仓库,可以方便地共享代码,并进行版本控制和合并工作。团队成员可以通过拉取(pull)远程仓库的代码,进行修改和提交,并通过推送(push)更新到远程仓库。

  3. 跨多个工作环境访问代码:通过连接远程仓库,可以在不同的工作环境(如多台计算机或团队成员之间)之间访问相同的代码库,方便查看和修改代码。

要建立本地仓库和远程仓库的连接,需要进行以下步骤:

  1. 创建远程仓库:在远程代码托管平台(如GitHub、GitLab等)上创建一个仓库,并获取远程仓库的 URL。

  2. 将本地仓库与远程仓库关联:

    • 如果在本地仓库中没有关联远程仓库,可以使用命令 git remote add origin <remote-url> 将本地仓库与远程仓库关联起来。其中,origin 是远程仓库的别名,可以自定义。
    • 如果已经关联了其他远程仓库,可以使用命令 git remote set-url origin <remote-url> 来修改远程仓库的 URL。
  3. 推送和拉取代码:

    • 推送代码:使用 git push origin <branch-name> 命令将本地分支的代码推送到远程仓库。例如,git push origin master 将本地 master 分支的代码推送到远程仓库中。
    • 拉取代码:使用 git pull origin <branch-name> 命令从远程仓库拉取最新的代码到本地仓库和工作目录中。例如,git pull origin master 从远程仓库的 master 分支拉取最新代码。

⭐️连接建立后,可以使用简短的命令进行操作,如 git pushgit pull,它们会默认将代码推送到和拉取自动与当前分支关联的远程仓库和分支上。


现在我们在dev分支下进行在file.txt中添加"aaa"内容,并add,commit
在这里插入图片描述
此时因为我们已经建立连接,所以可以直接进行简短的命令git push
在这里插入图片描述
同理开发者2进行同样操作。
在这里插入图片描述
创建一个分支dev。

在这里插入图片描述
此时再add、commit、push该内容
在这里插入图片描述
但是在push这里出错了,原因是出现了合并冲突

所以解决办法:先用git pull将远程仓库的内容拉取下来,然后在本地分支上进行手动修改代码再push提交
在这里插入图片描述

git branch --set-upstream-to=origin/<branch> dev

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
最后我们再进行push就大功告成了。
在这里插入图片描述
在这里插入图片描述

将内容合并进master

这里我们有两种方法;
1.使用pull request文件,将dev分支放入申请单中,若管理员审批通过,即可合并到master分支中(建议使用)
2.本地操作:先将dev分支merge进本地master分支,最后再将master push即可

但我们这里先使用方法2来演示
这里操作顺序如下:👇🏻
1.先git pull同步远程仓库,有人会疑问会什么这里要先同步远程仓库?
实际上,在开发中,远程仓库的master是不断在更新的,为了保证我们的master状态是最新的,我们要同步远程仓库使其先达到最新状态

2.在dev分支上merge master,有合并冲突在dev分支上解决,不影响master(我们之前说过)

3.最后在master分支上merge dev,最后push 到远程仓库。

在这里插入图片描述
此时,我们的多人协作就此完成!

🌈 总结一下
在同⼀分⽀下进⾏多⼈协作的⼯作模式通常是这样
• 首先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
• 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
• 如果合并有冲突,则解决冲突,并在本地提交;
• 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
• 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。

👉🏻多人协作二

此次多人协作目标
在这里插入图片描述

协作开发(1)

开发者1🫡
在这里插入图片描述
开发者2🫡

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


这里我们发现不论是开发者1还是开发者2push后,居然都没有出现合并冲突。

原因是因为两个开发者此时都处于各自私有的分支上开发,彼此分支互不影响,所以是不会有合并冲突的


此时出现了一个小意外,开发者2生病了🤧🤧,需要开发者1到feature-2分支上进行帮忙开发,此时情况来到了我们刚刚多人开发一中的情况
在这里插入图片描述
原因是git pull分两种情况:

  • 拉取分支内容:需要连接
  • 拉取仓库内容:不需要连接
    我们刚刚拉取的feature-2分支信息属于仓库内容。所以不需要连接

在这里插入图片描述
此时开发者2痊愈了,回到岗位上,更新仓库后即可看到开发者1给他写的代码。
在这里插入图片描述


将内容合并进master

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时再合并feature-1
但需注意:
在这里插入图片描述
所以得先在feature-1合并master
在这里插入图片描述
在这里插入图片描述
此时我们在在gitee中创建一个pull request库接收合并就可以了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此已大功告成!

👉🏻远程分⽀删除后,本地 git branch -a 依然能看到的解决办法

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

git remote prune

在这里插入图片描述

👉🏻企业级开发模型


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长

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

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

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

相关文章

Grander因果检验(格兰杰)原理+操作+解释

笔记来源&#xff1a; 1.【传送门】 2.【传送门】 前沿原理介绍 Grander因果检验是一种分析时间序列数据因果关系的方法。 基本思想在于&#xff0c;在控制Y的滞后项 (过去值) 的情况下&#xff0c;如果X的滞后项仍然有助于解释Y的当期值的变动&#xff0c;则认为 X对 Y产生…

插入排序与希尔排序

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; 这两个排序在思路上有些相似&#xff0c;所以有人觉得插入排序和希尔排序差别不大&#xff0c;事实上&#xff0c;他们之间的差别不小&#xff0c;插入排序只是希尔排序的最后一步。 目录 前言&#xff1a;…

华为数通方向HCIP-DataCom H12-831题库(单选题:161-180)

第161题 某台路由器Router LSA如图所示,下列说法中错误的是? A、本路由器已建立邻接关系 B、本路由器为DR C、本路由支持外部路由引入 D、本路由器的Router ID为10.0.12.1 答案: B 解析: 一类LSA的在transnet网络中link id值为DR的route id ,但Link id的地址不是10.0.12.…

对pyside6中的textedit进行自定义,实现按回车可以触发事件。

以下方法不算最优解。因为这个ui文件很容易重新编译&#xff0c;使写在ui.py里面的代码被删掉。 所以更好的方法应该是在主代码当中单独定义控件。并且使用布局添加控件到界面中。 以下内容纯为旧版实现&#xff0c;仅供参考&#xff1a; 我的实现方法是&#xff0c;先用qt de…

学信息系统项目管理师第4版系列15_资源管理基础

1. 项目资源 1.1. 实物资源 1.1.1. 着眼于以有效和高效的方式&#xff0c;分配和使用完成项目所需的实物资源 1.1.2. 包括设备、材料、设施和基础设施 1.2. 团队资源 1.2.1. 人力资源 1.2.2. 包含了技能和能力要求 2. 人力资源管理 2.1. 不仅是组织中最重要的资源之一&…

设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)

目录 概述概念适用场景结构类图 衍化过程业务需求基本的数据访问程序工厂方法实现数据访问程序抽象工厂实现数据访问程序简单工厂改进抽象工厂使用反射抽象工厂反射配置文件衍化过程总结 常见问题总结 概述 概念 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一种将相…

【开发篇】十、Spring缓存:手机验证码的生成与校验

文章目录 1、缓存2、用HashMap模拟自定义缓存3、SpringBoot提供缓存的使用4、手机验证码案例完善 1、缓存 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质使用缓存可以有效的减少低速数据读取过程的次数&#xff08;例如磁盘IO&#xff09;&#xff0c;提高…

Shapiro-Francia正态检验

Shapiro-Francia检验是一种用于检验数据是否来自正态分布的统计方法。它是Shapiro-Wilk检验的一个变种&#xff0c;通常适用于小到中等样本大小的数据集。Shapiro-Francia检验的核心思想是通过计算统计量来评估数据的正态性。 Shapiro-Francia检验的零假设是数据来自正态分布&…

26 docker前后端部署

[参考博客]((257条消息) DockerNginx部署前后端分离项目(SpringBootVue)的详细教程_在docker中安装nginx实现前后端分离_这里是杨杨吖的博客-CSDN博客) (DockerNginx部署前后端分离项目(SpringBootVue)) 安装docker # 1、yum 包更新到最新 yum update # 2、安装需要的软件包…

JavaSE | 初识Java(七) | 数组 (下)

Java 中提供了 java.util.Arrays 包 , 其中包含了一些操作数组的常用方法 代码实例&#xff1a; import java.util.Arrays int[] arr {1,2,3,4,5,6}; String newArr Arrays.toString(arr); System.out.println(newArr); // 执行结果 [1, 2, 3, 4, 5, 6] 数组拷贝 代码实例…

cf 解题报告 01

E. Power of Points Problem - 1857E - Codeforces 题意&#xff1a; 给你 n n n 个点&#xff0c;其整数坐标为 x 1 , … x n x_1,\dots x_n x1​,…xn​&#xff0c;它们位于一条数线上。 对于某个整数 s s s&#xff0c;我们构建线段[ s , x 1 s,x_1 s,x1​], [ s , x…

C语言结构体指针学习

结构体变量存放内存中&#xff0c;也有起始地址&#xff0c;定义一个变量来存放这个地址&#xff0c;那这个变量就是结构体指针&#xff1b; typedef struct mydata{int a1;int a2;int a3; }mydata;void CJgtzzView::OnDraw(CDC* pDC) {CJgtzzDoc* pDoc GetDocument();ASSERT…

npm ,yarn 更换使用国内镜像源,淘宝源

背景 文章首发地址 在平时开发当中&#xff0c;我们经常会使用 Npm&#xff0c;yarn 来构建 web 项目。但是npm默认的源的服务器是在国外的&#xff0c;如果没有梯子的话。下载速度会特别慢。那有没有方法解决呢&#xff1f; 其实是有的&#xff0c;设置国内镜像即可&#x…

基于web的医院预约挂号系统/医院管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

如何解决版本不兼容Jar包冲突问题

如何解决版本不兼容Jar包冲突问题 引言 “老婆”和“妈妈”同时掉进水里&#xff0c;先救谁&#xff1f; 常言道&#xff1a;编码五分钟&#xff0c;解冲突两小时。作为Java开发来说&#xff0c;第一眼见到ClassNotFoundException、 NoSuchMethodException这些异常来说&…

八大排序(三)堆排序,计数排序,归并排序

一、堆排序 什么是堆排序&#xff1a;堆排序&#xff08;Heap Sort&#xff09;就是对直接选择排序的一种改进。此话怎讲呢&#xff1f;直接选择排序在待排序的n个数中进行n-1次比较选出最大或者最小的&#xff0c;但是在选出最大或者最小的数后&#xff0c;并没有对原来的序列…

k8s--storageClass自动创建PV

文章目录 一、storageClass自动创建PV1.1 安装NFS1.2 创建nfs storageClass1.3 测试自动创建pv 一、storageClass自动创建PV 这里使用NFS实现 1.1 安装NFS 安装nfs-server&#xff1a; sh nfs_install.sh /mnt/data03 10.60.41.0/24nfs_install.sh #!/bin/bash### How to i…

springboot 简单配置mongodb多数据源

准备工作&#xff1a; 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包&#xff1a; # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

SSM - Springboot - MyBatis-Plus 全栈体系(十六)

第三章 MyBatis 三、MyBatis 多表映射 2. 对一映射 2.1 需求说明 根据 ID 查询订单&#xff0c;以及订单关联的用户的信息&#xff01; 2.2 OrderMapper 接口 public interface OrderMapper {Order selectOrderWithCustomer(Integer orderId); }2.3 OrderMapper.xml 配置…

一文拿捏基于redis的分布式锁、lua、分布式性能提升

1.分布式锁 jdk的锁&#xff1a; 1、显示锁&#xff1a;Lock 2、隐式锁&#xff1a;synchronized 使用jdk锁保证线程的安全性要求&#xff1a;要求多个线程必须运行在同一个jvm中 但现在的系统基本都是分布式部署的&#xff0c;一个应用会被部署到多台服务器上&#xff0c;s…