Git使用【下】

news2024/11/24 14:22:34

在这里插入图片描述

欢迎来到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.coloradmin.cn/o/1057144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE3照本宣科——应用实例API与setup

VUE3照本宣科——应用实例API与setup 前言一、应用实例API1.createApp()2.app.use()3.app.mount() 二、setup 前言 &#x1f468;‍&#x1f4bb;&#x1f468;‍&#x1f33e;&#x1f4dd;记录学习成果&#xff0c;以便温故而知新 “VUE3照本宣科”是指照着中文官网和菜鸟教…

IntelliJ IDEA 常用快捷键

目录 一、IDEA 常用快捷键 1 通用型 2 提高编写速度 3 类结构、查找和查看源码 4 查找、替换与关闭 5 调整格式 二、Debug快捷键 三、查看快捷键 1、已知快捷键操作名&#xff0c;未知快捷键 2、已知快捷键&#xff0c;不知道对应的操作名 3、自定义快捷键 4、使用…

nginx多文件组织

背景&#xff1a; nginx的话&#xff0c;有时候&#xff0c;想部署多个配置&#xff0c;比如&#xff1a;使用不同的端口配置不同的web工程。 比如&#xff1a;8081部署&#xff1a;项目1的web页面。 8082部署&#xff1a;项目2的web页面。 1)nginx.conf worker_processes…

javascript: Bubble Sort

// Sorting Algorithms int JavaScript /** * file Sort.js * 1. Bubble Sort冒泡排序法 */ function BubbleSort(arry, nszie) {var i, j, temp;var swapped;for (i 0; i < nszie - 1; i){swapped false;for (j 0; j < nszie - i - 1; j){if (arry[j] > arry[j …

Java EE改Jakarta

昨天折腾了一天&#xff0c;把旧项目升级了 旧项目运行环境 jdk &#xff1a;jdk1.7 TomCat&#xff1a;TomCat8.0 或者 TomCat 8.5 Eclipse 2022-12 spring&#xff1a;spring-2.5.6.jar Hibernate&#xff1a;hibernate-3.2.6.ga.jar Struts&#xff1a;struts2-core-2.1.6.…

macbook电脑磁盘满了怎么删东西?

macbook是苹果公司的一款高性能笔记本电脑&#xff0c;受到很多用户的喜爱。但是&#xff0c;如果macbook的磁盘空间不足&#xff0c;可能会导致一些问题&#xff0c;比如无法开机、运行缓慢、应用崩溃等。那么&#xff0c;macbook磁盘满了无法开机怎么办&#xff0c;macbook磁…

CleanMyMac X苹果电脑清理浏览器缓存工具

苹果电脑是一款优秀的电脑产品&#xff0c;但是随着使用时间的增长&#xff0c;苹果电脑也会出现一些问题&#xff0c;比如运行速度变慢、占用空间过大、出现错误提示等&#xff0c;这些问题往往和缓存有关。缓存是一种临时存储数据的方式&#xff0c;可以提高电脑的运行效率和…

c#基础逻辑练习案例

第二章综合练习小游戏 练习内容 向控制台输出“这是学号姓名的C#基础小游戏”。向控制台换行再输出“请输入你的游戏昵称&#xff1a;”。向控制台输入你的游戏昵称&#xff0c;赋给一个字符串变量。向控制台换行再输出“请输入你的性别&#xff1a;”。向控制台输入你的性别…

LeetCode 面试题 08.02. 迷路的机器人

文章目录 一、题目二、C# 题解 一、题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。设计一种算法&#xff0c;寻找机器人从左上角移动到右下角的路径…

Office 2021 小型企业版商用办公软件评测:提升工作效率与协作能力的专业利器

作为一名软件评测人员&#xff0c;我将为您带来一篇关于 Office 2021 小型企业版商用办公软件的评测文章。在这篇评测中&#xff0c;我将从实用性、使用场景、优点和缺点等多个方面对该软件进行客观分析&#xff0c;在专业角度为您揭示它的真正实力和潜力。 一、实用性&#xf…

数据结构—归并排序-C语言实现

引言&#xff1a;归并排序跟快速排序一样&#xff0c;都运用到了分治的算法&#xff0c;但是归并排序是一种稳定的算法&#xff0c;同时也具备高效&#xff0c;其时间复杂度为O(N*logN) 算法图解&#xff1a; 然后开始归并&#xff1a; 就是这个思想&#xff0c;拆成最小子问题…

mysql八股

1、请你说说mysql索引&#xff0c;以及它们的好处和坏处 检索效率、存储资源、索引 索引就像指向表行的指针&#xff0c;是一个允许查询操作快速确定哪些行符合WHERE子句中的条件&#xff0c;并检索到这些行的其他列值的数据结构索引主要有普通索引、唯一索引、主键索引、外键…

【系统架构】软件架构的演化和维护

导读&#xff1a;本文整理关于软件架构的演化和维护知识体系。完整和扎实的系统架构知识体系是作为架构设计的理论支撑&#xff0c;基于大量项目实践经验基础上&#xff0c;不断加深理论体系的理解&#xff0c;从而能够创造新解决系统相关问题。 目录 1、软件架构演化和定义 …

SLAM从入门到精通(从amcl到navigation软件栈)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了amcl&#xff0c;但它只是navigation里面的一个package而已。真正的导航还包含很多的内容。举个例子来讨论下&#xff0c;我们假设需…

Java后端模拟面试,题集①

1.Spring bean的生命周期 实例化 Instantiation属性赋值 Populate初始化 Initialization销毁 Destruction 2.Spring AOP的创建在bean的哪个时期进行的 &#xff08;图片转载自Spring Bean的完整生命周期&#xff08;带流程图&#xff0c;好记&#xff09;&#xff09; 3.MQ如…

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] 数组拷贝 代码实例…

JIRA 如何在项目之间移动 Issue

需要使用 JIRA 的查找功能。 把需要移动的 Issue 先全部找到&#xff0c;然后选择 Tools 下面的所有 Issues 批量操作页面 在随后的页面中&#xff0c;将会出现批量操作的页面。 在这里&#xff0c;可以对需要进行批量操作的问题&#xff0c;进行全部选择。 然后单击下一步继…

机器视觉工程师如何快速停止内耗,与自己和解

十分情绪化的人&#xff0c;是无法更好的成就自我的。 真正让人疲惫的是&#xff0c;不是工作&#xff0c;不是学习&#xff0c;更不是生活。而是你自己的情绪。 我们每一天去上班&#xff0c;感觉自己像个失败者。看不见自身的光芒&#xff0c;被自己的情绪笼罩&#xff0c;饱…

1.5 计算机网络的类别

思维导图&#xff1a; 1.5.1 计算机网络的定义 我的笔记&#xff1a; #### 精确定义&#xff1a; 计算机网络没有统一的精确定义&#xff0c;但一种较为接近的定义是&#xff1a;计算机网络主要由一些通用的、可编程的硬件互连而成&#xff0c;这些硬件并非专门用来实现某一特…

msvcp100.dll丢失怎样修复,msvcp100.dll丢失问题全面解析

msvcp100.dll是一个动态链接库文件&#xff0c;属于 Microsoft Visual C Redistributable 的一个组件。它包含了 C 运行时库&#xff0c;这些库在运行程序时会被加载到内存中。msvcp100.dll文件的主要作用是为基于 Visual C 编写的程序提供必要的运行时支持。 当您运行一个基于…