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

git 的分支管理详解

Git 的分支管理是其强大功能之一,允许开发者在同一代码库中并行开发多个特性或修复 bug,而不干扰主分支的代码。下面是对 Git 分支管理的详解:

1. 查看分支

  • 查看所有分支
    git branch  # 查看本地分支
    git branch -r  # 查看远程分支
    git branch -a  # 查看本地和远程分支
    

2. 创建分支

  • 创建一个新的分支,并切换到该分支:
    git checkout -b new-branch
    
    或者:
    git branch new-branch  # 创建分支
    git checkout new-branch  # 切换到新分支
    

3. 切换分支

  • 切换到已有的分支:
    git checkout branch-name
    在较新的 Git 版本中,可以使用简化的命令:
    git switch branch-name

4. 合并分支

  • 将某个分支的更改合并到当前分支:

    git checkout main  # 切换到主分支
    git merge new-branch  # 合并 new-branch 分支的内容到主分支
    
  • 解决合并冲突:如果在合并时出现冲突,Git 会提示你哪个文件有冲突。你需要手动编辑冲突的文件,解决后使用:

    git add conflicted-file
    git commit
    

5. 删除分支

  • 删除本地分支:
    git branch -d branch-name
    如果该分支没有完全合并,强制删除可以使用 -D
    git branch -D branch-name
  • 删除远程分支:
    git push origin --delete branch-name
    

6. 跟踪远程分支

  • 创建并跟踪远程分支:
    git checkout -b local-branch origin/remote-branch
    
    或者在较新的 Git 中:
    git switch -t origin/remote-branch

7. 推送本地分支到远程仓库

  • 将新分支推送到远程:
    git push --set-upstream origin new-branch #--set-upstream 或其简写 -u 选项用于将当前分支与远程仓库中的一个分支建立关联
  • 如果是已经存在且建立好关联关系的分支推送到远程,可以直接使用:
    git push
    

8. 分支合并策略

  • Fast-forward 合并:当当前分支是被合并分支的祖先时,Git 会直接把当前分支指向被合并分支,不产生新的合并提交。
  • 非 Fast-forward 合并:当当前分支和被合并分支有各自的提交时,会生成一个新的合并提交来记录合并的历史。
    git merge --no-ff branch-name

9. Rebase(变基)

  • 变基操作可以将一个分支的提交历史“平滑”地应用到另一个分支上,常用于保持历史记录的线性。变基与合并不同,变基会重新写历史:

    git rebase branch-name
  • 如果在变基时遇到冲突,类似于合并冲突的解决过程,解决后继续变基:

    git rebase --continue

10.查看分支与远程仓库分支建立的关联关系

列出所有本地分支,并显示每个分支最后一次提交的信息以及它们所跟踪的远程分支

git branch -vv

 分支管理最佳实践

  • 主分支稳定mainmaster 分支应保持稳定,只有在代码经过充分测试后才合并到主分支。
  • 特性分支:每个功能或 bug 修复应该在一个独立的分支上进行开发,避免影响主分支。
  • 频繁提交和推送:保持分支间的同步,以减少合并冲突。
  • 代码审查和 pull request:在合并前通过 pull request 进行代码审查,以确保代码质量。

Git 的分支管理为团队开发提供了强大的工具,通过合理使用分支,开发者可以高效地管理多个任务,并确保代码的稳定性和可维护性。

相关文章:

git 的分支管理详解

Git 的分支管理是其强大功能之一,允许开发者在同一代码库中并行开发多个特性或修复 bug,而不干扰主分支的代码。下面是对 Git 分支管理的详解: 1. 查看分支 查看所有分支 git branch # 查看本地分支 git branch -r # 查看远程分支 git br…...

w003基于Springboot的图书个性化推荐系统的设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

医院信息化与智能化系统(6)

医院信息化与智能化系统(6) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…...

前端学习---(6)js基础--4

Promise Promise 是异步编程的一种新的解决方案和规范。 Promise优点: 1、可以很好地解决ES5中的回调地狱的问题(避免了层层嵌套的回调函数)。 2、统一规范、语法简洁、可读性和和可维护性强。 3、Promise 对象提供了简洁的 API,使得管理异步…...

241026-RHEL如何以root身份卸载Docker

在 RHEL 8.8 中,以 root 身份卸载 Docker 可以通过以下步骤完成: 停止 Docker 服务(如果已启动): sudo systemctl stop docker删除 Docker 包: 运行以下命令卸载 Docker 引擎及其依赖包(docker-…...

iPhone当U盘使用的方法 - iTunes共享文件夹无法复制到电脑怎么办 - 如何100%写入读出

效果图 从iPhone复制文件夹到windows电脑 步骤windows 打开iTunes通过USB连接iPhone和电脑手机允许授权iTunes中点击手机图标,进入到点击左边“文件共享”,在右边随便选择一个App(随意...)写入U盘:拖动电脑的文件&am…...

jenkins ssh 免密报错Host key verification failed.

jenkins 发布项目,ssh连接远程服务器时报错:Host key verification failed. 解决: 原因是生成的sshkey不是用的jenkins用户,所以切换用户到:jenkins重新生成sshkey su jenkins ssh-keygen -t rsa ssh-copy-id -i ~/…...

智能科学与技术(一级学科)介绍

智能科学与技术:探索智能的边界与未来 智能科学与技术的起源与发展学科定位与内涵学科范围与研究方向培养目标相关学科 在当今这个信息爆炸的时代,人工智能(AI)已经成为科技创新的重要驱动力。随着技术的不断进步,智能…...

iOS调试真机出现的 “__llvm_profile_initialize“ 错误

一、错误形式&#xff1a; app启动就崩溃&#xff0c;如下&#xff1a; Demo__llvm_profile_initialize:0x1045f7ab0 <0>: stp x20, x19, [sp, #-0x20]!0x1045f7ab4 <4>: stp x29, x30, [sp, #0x10]0x1045f7ab8 <8>: add x29, sp, #0x100x1…...

Android SELinux——neverallow问题处理(十六)

上一篇我们介绍了通过添加允许策略处理问题,这里我们主要来看一些 neverallow 策略问题该怎么处理。 一、neverallow介绍 遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级…...

Vue 关于路由

关于路由 路由的模式与区别 路由的两种模式&#xff1a; hashhistory 区别&#xff1a; 表象不同 hash 模式中&#xff0c;在地址里以 /#/ 分隔&#xff1b;history 模式中&#xff0c;地址里以 / 分隔。关于找不到当前页面发送请求的问题 history 模式会给后端发送一次请…...

香港海洋投资启动创新海洋牧场,领航全球海洋经济

香港&#xff0c;这座国际大都市&#xff0c;以其独特的地理位置和深厚的海洋文化底蕴&#xff0c;再次站在了全球海洋经济发展的前沿。近日&#xff0c;香港海洋投资发展有限公司&#xff08;以下简称“香港海洋投资”&#xff09;在万众瞩目中&#xff0c;正式宣布启动其创新…...

C/C++ 每日一练:二分查找

二分查找是一种高效的查找算法&#xff0c;用于在有序数组中定位目标元素的位置。它的核心思想是每次查找时将范围缩小一半。 题目要求 实现一个二分查找算法。给定一个递增排序的整型数组 arr 和一个目标值 target&#xff0c;编写一个函数 binarySearch&#xff0c;若 targe…...

Linux基础IO--重定向--缓冲区

1&#xff0c;为什么语言喜欢做封装&#xff1f; 我们先知道一个概念&#xff0c;显示器叫做字符设备&#xff0c;根据ACSLL码来打印数据&#xff0c;所以我们从键盘输入的 1234&#xff0c;在显示器看来就是一个一个的字符(1,2,3,4)而不是一千两百三十四: 下图输入字符类型数…...

Conda 安装与使用指南

Conda 是一个开源的软件包管理和环境管理系统&#xff0c;主要解决一个系统上同时要使用python2&#xff0c;python3等等多个python环境的切换问题&#xff0c;支持多种编程语言&#xff08;如 Python、R 等&#xff09;&#xff0c;可以在 Windows、macOS 和 Linux 上运行。它…...

C++中获取硬盘ID的方法

在C++中,直接获取硬盘的ID(通常是硬盘的序列号或唯一标识符)并不是一项简单的任务,因为这通常涉及到低级的硬件访问,这通常是由操作系统或特定的硬件驱动程序管理的。标准C++库并没有提供直接访问硬盘ID的功能。 然而,可以通过以下几种方法来获取硬盘的ID: 操作系统特定…...

OpenRTP 传输增加OpenRTPServer

开源地址 最近增加了OpenRTPServer&#xff0c; 已经修改完成一版放在了目录下&#xff0c;window和linux下编译都成功了&#xff0c;不过由于修改代码CMakefile 需要修改&#xff0c;先放放 OpenRTP开源地址 vlc得纠错传输方式 我发现我代码写错以后&#xff0c;vlc 依然能…...

使用vue3+cesium+earthsdk+supermap实现通视分析(有版本报错问题)

main.js: 这个文件是项目的入口文件,主要进行了以下操作: 使用Vue 3的createApp创建应用实例。加载了element-plus UI 组件库。加载了router和store,以及axios用于发送HTTP请求。将@turf/turf和自定义的bus.js注册到全局属性中,便于在组件中使用。环境配置需求: 你需要安…...

python 轮子是什么

此一词语的由来是因为轮子由人类所发明&#xff0c;且在各方面都带来许多便利。既然轮子已被发明&#xff0c;而且在使用上没有什么缺陷&#xff0c;重新再发明一次轮子是没有意义的&#xff0c;只是浪费时间&#xff0c;分散研究者的资源&#xff0c;使其无法投入更有意义及价…...

农作物大豆病虫害识别分类数据集(猫脸码客第227期)

农作物大豆病虫害识别分类数据集 大豆&#xff0c;作为全球重要的粮食作物之一&#xff0c;不仅承载着人类饮食中的重要角色&#xff0c;还深刻影响着农业经济的发展。然而&#xff0c;大豆的生长过程中&#xff0c;常常面临着来自病害和虫害的双重威胁。这些病虫害不仅会影响…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

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

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

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...