首页
学习
活动
专区
圈层
工具
发布

Git分支管理的策略梳理

当下最流行的版本管理系统应该是非Git莫属。相比同类软件,Git有很多优点,其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。...如果不加注意,很可能会留下一个枝节蔓生、四处开放的版本库,到处都是分支,完全看不出主干发展的脉络。Vincent Driessen提出了一个分支管理的策略,非常值得借鉴!...它可以使得版本库的演进保持简洁,主干清晰,各个分支各司其职、井井有条。 下面就对这一策略做一简单梳理: 1)主分支Master 首先,代码库应该有一个、且仅有一个主分支。...所有提供给用户使用的正式版本,都在这个主分支上发布。 ? Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。...使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。 ?

1.1K111

【Git#3】分支管理下的分支策略

一、分支管理策略 通常在合并分支时,一般情况下Git会采用 Fast forward 模式。还记得如果我们采用 Fast forward 模式之后,形成的合并结果是什么呢?...二、分支策略 在实际开发中,我们应该按照几个基本原则进行分支管理: 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活; 那在哪干活呢?...干活都在dev分支上 也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在 master 分支发布1.0版本; 你和你的小伙伴们每个人都在dev分支上干活...默认策略(占 Git 合并的 70%+) ③ Ours/Theirs(选择性合并) 触发条件:需要强制保留特定分支内容 命令示例: 示例1:使用规范 # 正确流程示例(架构迁移场景): git checkout...建议在团队中制定《合并策略规范》,例如长期分支强制使用 --no-ff,第三方库必须用 subtree 等,以保持代码库的健康度。

46210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git 分支管理:优化版本控制与应急处理的关键策略

    使用 Git 分支:轻松管理不同版本和应对紧急情况的最佳实践 使用 Git 分支 在 Git 中,分支是主仓库的新/独立版本。 假设你有一个大型项目,需要对其进行设计更新。...没有使用 Git 时: 复制所有相关文件以避免影响实时版本 开始进行设计工作,并发现代码依赖于其他文件中的代码,这些文件也需要更改! 复制相关文件,确保每个文件依赖项引用正确的文件名 紧急情况!...) 使用 Git 时: 使用名为 "new-design" 的新分支,直接编辑代码,而不影响主分支 紧急情况!...因此,我们需要将这两个文件都添加到该分支的暂存区中: git add --all 使用 --all 而不是单独的文件名将所有已更改的文件(新的、修改的和已删除的)放入暂存区。...注意:在 checkout 命令上使用 -b 选项会创建一个新分支,并移动到该分支,如果该分支不存在的话。 切换分支 现在让我们看看工作在不同分支上有多么快速和容易,以及它是如何有效地工作的。

    41810

    团队如何选择合适的Git分支策略?

    现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等。...,Git中的每一个分支只是指向当前版本的一个指针,Git的分支策略使创建和合并分支变得快捷灵活。...Git代码分支模型在使用Git管理代码以及多人协作的开发模式下,一个团队甚至一个公司对Git的使用有统一规范的工作流程尤为重要。...,但是可以根据功能的完成程度直接从主分支上创建迭代版本用于针对不同客户或者不同时期的功能演示。...以上这些分支策略,仅仅是作为大家实践的参考,不同的开发模式和发布节奏,以及团队的人员水平,基础设施水平等都是选择分支模型的参考因素。

    1.1K00

    git分支管理的策略和冲突问题

    , etc… Version: 三位数的语义版本(semantic version) Region: 当前地区,比如 “Europe”, “Asia” 或其他地方 Hostname: Kite的hostname...Kite使用SockJS在很多不同传输方法(websocket, xhr, etc..)提供WebSocket模拟(emulation ),这意味着你也可以通过浏览器来链接Kite(见Kite.js)。...:= kite.New("first", "1.0.0") k.Run() } 这里我们创建了一个kite,它的名字是first,版本是1.0.0。...就像前面所说,这是一个非常基本的概念,并且在Kite API也得到了充分体现。这意味着Kite框架强制用户使用服务发现机制。为了能发现自己,对方要知道你的真实身份。也就是说你需要进行身份验证。...一旦开始使用它,你就可以感受到API的简单性。Kite库易于使用,因为它与Go具有相同的理念。它使用一些用Go编写的最好的开源项目(例如etcd)。Go使编写稳定平台作为Kite库的基础变得简单。

    88300

    团队如何选择合适的Git分支策略?

    现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等。...,Git中的每一个分支只是指向当前版本的一个指针,Git的分支策略使创建和合并分支变得快捷灵活。...Git代码分支模型 在使用Git管理代码以及多人协作的开发模式下,一个团队甚至一个公司对Git的使用有统一规范的工作流程尤为重要。...,但是可以根据功能的完成程度直接从主分支上创建迭代版本用于针对不同客户或者不同时期的功能演示。...以上这些分支策略,仅仅是作为大家实践的参考,不同的开发模式和发布节奏,以及团队的人员水平,基础设施水平等都是选择分支模型的参考因素。

    1.1K60

    Git多分支版本合并错误,使用revert回滚的问题

    假设我们有三个分支,dev1.1是当前代码开发的版本分支,dev是开发环境上部署的版本分支,test是测试环境上部署的版本分支,正常的合并操作应该是dev1.1->dev->test。...正确操作应该是在回滚之后,将三个分支反向合并一次,这时候就不会有冲突了 当前补救措施是先将dev(没有A)合并到dev1.1(有A),此时合并会将dev1.1上的A删除,然后手动将本次合并删除的代码加上...,提交,接下来按原有流程合并即可dev1.1->dev->test 手动将合并到dev之后删除的A代码加上的时候,可以在gitLog上选择合并前上一次记录的文件,在本地使用Reset Current...Branch to Here操作,但是这个只能一个文件一个文件的执行 或者使用git cherry-pick(可以理解为”挑拣”提交),它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上...参考:https://chenchenchen.blog.csdn.net/article/details/112681902 修复前后整个gitLog显示如下(新->旧) 恢复之前版本,reset

    2K20

    如何克服解决Git冲突的恐惧症?(Git分支策略)

    git默认的是master分支,试想下,如果所有的开发都在master分支,想起来都比较混乱,那么有没有比较科学的分支策略呢?...本篇将介绍git的分支策略,听我慢慢道来~ 分支分类 正常分支: master:主分支 develop:开发分支 临时分支: feature:功能分支 release:预发布分支 fixbug:修补bug...主分支 首先,代码库应该有一个、且仅有一个主分支。 所有提供给用户使用的正式版本,都在这个主分支上发布。 Git主分支的名字,默认叫做Master。...它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。 开发分支 主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。...--no-ff feature-x 删除feature分支: git branch -d feature-x 预发布分支 预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试

    79820

    git的使用步骤_git版本控制

    一、安装git 二、配置git 三、初始化本地仓库 四、将当前目录的文件纳入版本控制 五、查看仓库当前文件提交状态 一、安装git 在网上下载git,并安装 安装完成后,如下图:右键鼠标会有 Git GUI...Here 和 Git Bash Here 二、配置git 在git中设置当前使用的用户是谁,用户名和邮箱仅仅是用来区分开发人员的身份,不一定真实存在 git config --global user.name...四、将当前目录的文件纳入版本控制 将当前目录下的文件纳入版本控制 (1).使用 git add 命令将文件提交到暂存区 git add [具体文件名]:将某个文件提交 git add ./ :将当前目录的所有文件提交...git add -A:将当前目录的所有文件提交(等同于git add ./) git add *.c:将后缀名为.c的文件提交 (2).使用git commit 命令将文件从暂存区保存到本地仓库 git...commit -m “提交的描述”:将暂存区的文件提交到本地库(建议描述使用英文) git commit:若不加-m “描述” 直接按回车,则会跳转到 vi编辑器,需要在编辑器中添加描述 进入vi编辑器后

    75320

    版本控制-git的使用

    大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。 这周给大家介绍下git的使用 我们为什么需要一个版本控制的软件呢?...我相信大家很多人在进行版本控制时往往都是使用复制的方式,不过这样做的后果是 1.需要程序员自己记住每一个复制所对应的版本是多少, 2.项目回退时很容易混淆当前的工作路径,并且对以前的版本进行修改,导致以前的版本被错误的修改...第三个指将可以在cmd中直接输入git的相关命令,注意这个可能会覆盖cmd中原有的命令 建议大家选第一个就可以了 是为了处理windows和linux/unix中换行符的不同(windows中换行符是CRLF...; 第三个选项:不进行换行符的转换 三、git的使用 1....分支上(默认产生的主分支),这个需要输入你在京东注册时,输入的用户名和密码 ,如果觉得每次都要输入很麻烦可以 1、新建一个名为_netrc的文件,文件内容如下 machine code.jd.com

    1.4K80

    化繁为简的企业级Git管理实战(三):分支管理策略

    作者: 潘伟洲(HaHack) 说到版本控制,就不得不提到分支管理策略。就像学开车必须学学交通规则。分支管理策略是代码版本控制的基础组成部分。...model》 中提出的分支管理策略。...与 Github-Flow 相比,Git-Flow 拥有更多的分支: master:可以提供给用户使用的正式版本; develop:用来生成代码的隔夜版本(nightly); feature:用于开发某个功能...Git-Flow 提出的分支管理策略完整而实用,它甚至已经成为了一个通用开发流程标准。开发者们可以在多个团队和项目中遵守同一套流程。但 Git-Flow 也不是万金油。...而子模块既可能和主工程一样多个产品分支,也可能是一个通用模块。对于通用模块,只需要维护一套 Git-Flow 分支体系。例如 common 子模块就只有标准的 master、dev 等分支。

    1.4K40

    git版本控制工具的使用

    git版本管理工具使用 一丶Git的下载与安装 1.windows下的git的下载与安装 git下载地址 git的官方网站 下载之后,点击直接默认安装即可....add可以看下说明 2.3.将缓存数据提交到仓库 使用git add 添加的文件,并没有放到最终版本库.我们需要使用一个命令,放到最终版本库才可以....git reflog 可以看到你每一次执行过的命令,如果回退后,后悔了.可以使用这个命令看一下你的回退之前的ID.重新使用git reset --hard 回退一下即可. 4.查看版本库与当前工作区文件...我们可以使用命令查看一下.当前版本库,与工作区域的文件不同....> 六丶标签管理 1.标签命令 标签很简单,就是给我们最终的版本加上一个版本号.主要使用命令 tag git tag [name] 创建一个版本号. git tag -d 标签 删除一个标签. git

    1.3K30

    史上最全最好的Git分支使用规范

    对于使用Git作为源代码管理工具的项目,如何使用Git工具及标准的工作量进行规范说明。...1.2 预期读者与阅读建议 预期读者 目标 软件开发人员 理解需要遵循的Git使用规范流程,以及常用Git命令的使用。...能够熟练应用Git支持软件开发过程中的源代码管理。 测试人员 理解Git使用规范流程,能够基于Git进行软件版本管理、支持自动化集成、及Bug跟踪。...其它人员 了解Git使用流程规范。 2. Git工作流规范 Git 作为一个源码管理系统,不可避免涉及到多人协作。...2.1 分支管理 在此流程中,每个软件项目存在两个长期的分支: •主分支(master) - 用于对外发布版本,任何时候在这个分支获得的软件都是稳定版本; •开发分支(dev)- 用于日常开发,

    86910

    conda的使用-管理不同版本的py

    当需要管理多种版本的python pip 会比较麻烦 pip安装好的包升级换代也繁琐,anaconda就是来解决这一难题的工具 Anaconda Anaconda是一个用于科学计算的Python发行版...,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。...https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 这个地址是清华大学的地址源,如果需要最新的包还是推荐官网下载 使用 |创建环境 创建指定版本的...py 例如chuangjianpy3.5版本 起名叫 py35 conda create --name py35 python=3.5 ?...安装py3.5 |激活环境(指定系统默认版本py) linux mac :source activate py35 (py35是刚起的名,不是填python的版本) windows: activate

    1.8K70

    Jenkins Pipeline动态使用Git分支名称的技巧

    前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说点事情...如果使用了多分支 Pipeline,就不会存在动态使用分支名称的问题了。...如果你想使用单分支 Pipeline,又想动态使用分支,那本文就派上用场了 Jenkins 中动态使用分支名称 新建单分支 Pipeline后,可以在界面中看到 This project is parameterized...向下滚动,来配置 Jenkins Pipeline,其中在指定 Jenkins Pipeline 分支的位置,就可以使用上面刚刚创建的变量 BranchName 了,如下图所示,配置成 */${BranchName...总结 在 Jenkins 中,其实这是一种很常见的动态使用参数的方式,config 的其他参数也可以动态引用变量,大大增加灵活性,如果你要维护 JenkinsPipelie 相关的内容,你大概率会遇到这种需求

    1.7K10

    .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化

    不过,最终生成了一个新的 dll 之后却心有余悸,不知道我是否删除或者修改了某些 API,是否可能导致我原有库的使用者出现意料之外的兼容性问题。...另外,准备为一个产品级项目更新某个依赖库,但不知道更新此库对我们的影响有多大,希望知道目前版本和希望更新的版本之间的 API 差异。...索性发现了 JustAssembly 可以帮助我们分析程序集 API 的变化。本文将介绍如何使用 JustAssembly 来分析不同版本程序集 API 的变化。...开始比较 启动 JustAssembly,在一开始丑陋(逃)的界面中选择旧的和新的 dll 文件,然后点击 Load。 然后,你就能看到新版本的 API 相比于旧版本的差异了。...对于每一个差异,双击可以去看差异的代码详情。 上图我的 SourceFusion 项目在版本更新的时候只有新增的 API,没有修改和删除的 API,所以还是一个比较健康的 API 更新。

    1.1K30

    Linux不同版本的区别以及使用建议

    1991年的Linux只是一个内核,安装这个操作系统需要进行交叉编译,入门难度实在太高了,于是出现了这样的公司,他们将公开好的内核加上开源的周边软件编译成二进制文件放到网上供人使用。...Fedora是Red Hat的桌面版本发展而来,免费,稳定性较差。 【运用建议】没用过。 四 Debian 官网地址:https://www.debian.org/ ?...是迄今为止最遵循GNU规定的linux系统,最早于1993年创立,有三个版本分支:stable(稳定)、testing(测试,相对稳定)、unstable(不稳定,最新)。...属于debian系列,是基于Debian的unstable版本加强而来, apt-get/dpkg/deb包管理 ,适合桌面系统,衍生版本Kubuntu(桌面采用KDE,比较华丽),Xubuntu(要求配置较低...最年轻的发行版本,被称为最完美的Linux发行版本之一,首个稳定版发行于2002年,拥有FreeBSD广受美誉的ports系统——Portage包管理系统,APT和YUM都是二进制文件分发的包管理系统,

    3K20

    如何在不同的构建环境中使用不同的API地址?

    在不同构建环境中使用不同的API地址,是前端项目的常见需求。核心思路是通过环境变量区分环境,并在构建时动态注入对应的API地址。...以下是通用实现方案,适用于大多数前端构建工具: 一、基础实现步骤 定义环境变量文件 为不同环境创建对应的配置文件(如开发、测试、生产),存放各自的API地址。...在代码中引用环境变量 在项目代码中通过特定语法访问环境变量,而非硬编码API地址。 配置构建命令 在package.json中定义不同环境的构建命令,指定对应的环境模式。...=/test-api # .env.production(生产环境) VITE_API_URL=/prod-api 代码中使用: // api.js export const apiBaseUrl =...通过这种方式,只需执行不同的构建命令,就能自动切换项目使用的API地址,无需手动修改代码,极大提升了多环境部署的效率。

    19410
    领券