3、Git分支操作与团队协作

news2024/11/27 10:33:17

Git分支操作

  • 1.什么是分支
  • 2. 分支的好处
  • 3. 分支的操作
    • 3.1 查看分支
    • 3.2 创建分支
    • 3.3 切换分支
    • 3.4 修改分支
    • 3.5 合并分支
    • 3.6 产生和解决冲突
  • 4. 创建分支和切换分支图解
  • 5. Git团队协作机制
    • 团队内协作
    • 跨团队协作

在这里插入图片描述
均在git bash中进行操作。事先建好本地工作库

1.什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
在这里插入图片描述

2. 分支的好处

同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

3. 分支的操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

3.1 查看分支

  1. 基本语法
git branch –v
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -v
* master a0bd3a9 second commit

3.2 创建分支

  1. 基本语法
git branch 分支名
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch hot-fix

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -v
  hot-fix a0bd3a9 second commit
* master  a0bd3a9 second commit

3.3 切换分支

  1. 基本语法
git checkout 分支名
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git branch -v
* hot-fix a0bd3a9 second commit
  master  6752aac hot-fix first commit

3.4 修改分支

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ vim hello.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git add hello.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git commit -m "hot-fix second commit right" hello.txt
[hot-fix 8d3ba97] hot-fix second commit right
 1 file changed, 2 insertions(+)

此时当处在hot-fix分支时,工作区的hello.txt文件为本次修改后的结果:
在这里插入图片描述
若将分支切换回master时,工作区的hello.txt文件结果仍然保持修改前的原样:
在这里插入图片描述
不同的分支保存为不同的结果。

3.5 合并分支

  1. 基本语法
git merge 分支名
  1. 实例
    在master分支上合并hot-ffix分支
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-ffix)
$ git checkout master
Switched to branch 'master'
M       test.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git merge hot-ffix
Already up to date.

3.6 产生和解决冲突

  • 冲突产生的表现:后面状态为MERGING
  • 冲突产生的原因:
    合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。(只有在同一个位置的字符串上出现的增加和删减才不会产生冲突,在不同位置增加的内容也会产生冲突)
  • 查看状态(检测到有文件有两处修改)
  1. 实例
    在master分支的hello.txt文件中倒数第二行加上master test
    在hot-fix分支的hello.txt文件中最后一行加上hot-fix test
    此时在master分支上合并hot-fix分支将显示失败。
1.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (hot-fix)
2.	$ git checkout master
3.	Switched to branch 'master'
4.	
5.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (master)
6.	$ git merge hot-fix
7.	Auto-merging hello.txt
8.	CONFLICT (content): Merge conflict in hello.txt
9.	Automat-ic merge failed; fix conflicts and then commit the result.
10.	
11.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (master|MERGING)
12.	$ git status
13.	On branch master
14.	You have unmerged paths.
15.	  (fix conflicts and run "git commit")
16.	  (use "git merge --abort" to abort the merge)
17.	
18.	Unmerged paths:
19.	  (use "git add <file>..." to mark resolution)
20.	        both modified:   hello.txt
21.	
22.	no changes added to commit (use "git add" and/or "git commit -a")

在同一个文件中发生冲突,需要手动修改合并。通过vim hello.txt打开文件,如图,手动进行修改并保存,将显示冲突部位的标识符也删除。
在这里插入图片描述
修改完之后再add和commit。但是手动修改后,不能识别修改的文件,因此commit的时候不能带文件名。

4. 创建分支和切换分支图解

在这里插入图片描述
Master、hot-fix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果指向hot-fix,那么我们现在就在hot-fix分支上。
所以切换分支的本质就是移动HEAD指针。

5. Git团队协作机制

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

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

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

相关文章

零代码也能玩出花:Mugeda在H5设计中的魔法力量

文章目录 一、Mugeda零代码可视化H5设计工具简介二、Mugeda零代码可视化H5设计实战案例1. 注册并登录Mugeda账号2. 选择模板3. 编辑页面内容4. 添加动画效果5. 预览和发布 三、Mugeda零代码可视化H5设计的优势《Mugeda零代码可视化H5设计实战》内容简介作者简介目录前言/序言 随…

首发卡密引流系统 支持短视频点赞/关注获取卡密

搭建教程&#xff1a; 环境要求&#xff1a;Nginx、MySQL 5.6、PHP 5.6 步骤&#xff1a; 将压缩包解压至网站根目录。 打开域名/install&#xff0c;按照提示填写数据库信息进行安装。 管理后台&#xff1a; URL&#xff1a;域名/admin 账号密码&#xff1a;admin/123456 …

程序员实现财富自由的十种方法!

程序员肯定都有过一夜暴富的梦想&#xff0c;也许是兼职接单&#xff0c;也许是成为炙手可热的大网红&#xff0c;也许只是平凡的中张百万大奖彩票…… 除去运气超好实力拔群以外&#xff0c;大多数程序员是很难在短时间内实现财富自由的。虽是如此&#xff0c;但搞钱对于程序…

Linux系统下隧道代理HTTP

在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题&#xff0c;主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前&#xff0c;需要了解几个关键概念&#xff1a;代理服务器、隧道代理和HTTP协议。代理…

河南:女子一家八口住酒店223天,每天房费1000块,决定住一辈子

河南这家人可真是会享受生活啊&#xff01;卖掉房子住酒店&#xff0c;一辈子不买房&#xff0c;每天只花1000块&#xff0c;这是你梦想中的生活吗&#xff1f;&#x1f602; 他们一家人八口&#xff0c;从老到小&#xff0c;都住在酒店里。说真的&#xff0c;这可真是让人羡慕…

关于Echarts的重要属性总结

概要 1.设置图例字体颜色&#xff1a; legend: {//添加位置如下textStyle: {color: #fff // 设置图例文字颜色为白色}} 2.设置序列颜色&#xff1a; series: [{ // 添加位置如下itemStyle: { color: #FFA500 // 设置序列Series颜色}] 3.设置坐标轴单位&#xff1a; xAx…

分享好用的chatgpt

1.在vscode中&#xff0c;点击这个&#xff1a; 2.搜索&#xff1a;ChatGPT - 中文版&#xff0c;个人觉得这个更好用&#xff1a; 3.下载完成之后&#xff0c;左侧会多出来这个&#xff1a; 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…

Android apk安装包反编译——apktool工具

目录 一、apk 文件结构二、下载 apktool三、 使用 apktool 反编译 apk四、编译为apk五、apk签名1.生成密钥库2.使用 v1 签名3.使用 v2 签名 六、Dex 加解密原理 一、apk 文件结构 首先是 apk&#xff0c;即安卓程序的安装包。Apk 是一种类似于 Symbian Sis 或 Sisx 的文件格式…

Unity TextMeshPro中文字体的转换与显示

Unity TextMeshPro功能非常强大&#xff0c;但是我们用默认的字体格式却无法显示中文&#xff0c;必须把字体转换之后才能正常显示中文。 具体转换方法&#xff1a; 1、准备好字体&#xff0c;ttf或otf格式都可以&#xff0c;如&#xff1a;SOURCEHANSANSCN-NORMAL.OTF 2、准…

maven阿里源找不到指定jar包解决方案

到这里去找&#xff1a; https://mvnrepository.com/ 例如你要找&#xff1a;spring-boot-starter-web 复制坐标即可。IDEA会去坐标自带的网址寻找资源&#xff0c;可能会慢一点。

【Vue3】创建项目的方式

1. 基于 vue-cli 创建 ## 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test本质上使用webpack&#xff0c;默认安装以下依赖&#xff1a; 2. 基于 vite 创建 官…

VLAN简介

在配置交换机或者传输设备时&#xff0c;经常会提到vlan&#xff0c;这个vlan具体是啥呢&#xff1f; VLAN&#xff08;Virtual Local Area Network&#xff09;中文名为“虚拟局域网”。它是一种在物理网络上划分出逻辑网络的方法&#xff0c;将物理上的局域网在逻辑上划分为多…

基于Java SSM框架实现人才小区公寓社区物业管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现人才小区公寓社区物业管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个人才公寓管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff…

边缘计算网关在温室大棚智能控制系统应用,开启农业新篇章

项目需求 ●目前大棚主要通过人为手动控温度、控水、控光照、控风&#xff0c;希望通过物联网技术在保障产量的前提下&#xff0c;提高作业效率&#xff0c;降低大棚总和管理成本。 ●释放部分劳动力&#xff0c;让农户有精力管理更多大棚&#xff0c;进而增加农户收入。 ●…

vue2实现手写签批

手写签名 一、安装二、引入三、使用 vue-signature-pad 完成签批功能四、解构出data为base64编码的图片一、图片实现横屏 使用案例图 一、安装 npm i vue-signature-pad2.0.5 // vue2适用的版本二、引入 *mian.js* import VueSignaturePad from vue-signature-padVue.use(V…

AI时代下,如何看待“算法利维坦”?

ChatGPT的浪潮从2022年袭来后&#xff0c;至今热度不减&#xff0c;呈现出蓬勃发展的趋势。AI家居、医疗、教育、金融、公益、农业、艺术......AI真的已经走进了生活的方方面面&#xff0c;我们仿佛已经进入了AI时代&#xff0c;势不可挡。人工智能水平如此之高&#xff0c;不禁…

【每日一题】收集巧克力

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;枚举操作数 写在最后 Tag 【枚举】【数组】【2023-12-28】 题目来源 2735. 收集巧克力 题目解读 有长度为 n, 下标从 0 开始的整数数组 nums, 表示收集不同类型的巧克力的成本. nums[i] 表示收集类型 i 巧克力的成本…

机器视觉——cv2窗口

1、窗口控制 1.1 创建窗口 cv2.imshow()函数在显示图像时&#xff0c;指定的窗口如果不存在&#xff0c;则会按默认设置创建一个窗口&#xff0c;窗口大小由图像大小决定&#xff0c;且不能更改。 cv2.nameWindow()函数用于创建窗口&#xff0c;格式如下&#xff1a; cv2.n…

CodeWhisperer:编码世界中的声音启迪者

人烟 导语&#xff1a; 在数字化时代&#xff0c;编码已经成为了一种不可或缺的技能。而 CodeWhisperer&#xff08;编码世界中的声音启迪者&#xff09;则以其卓越的技术和深厚的知识为人们带来了独特的启发和指导。本文将介绍 CodeWhisperer 的背景和成就&#xff0c;探讨他是…

未来编程语言什么样?编译解释兼容方为王

○、编程语言的未来&#xff1f; 随着科技的飞速发展&#xff0c;编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心&#xff0c;为程序员提供了与机器沟通的桥梁。那么&#xff0c;在技术不断进步的未来&#xff0c;编程语言的走向又将如何呢&#xff1f; …