热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

从当前工作的分支分支-Git

如何解决《从当前工作的分支分支-Git》经验,为你挑选了1个好方法。

对于Jenkins管道代码,我们严格不遵循Gitflow工作流程。

X从中有一个分支master,其他技术人员当前可使用该分支进行自己的更改。未来几周分支机构将进行许多提交X

+----+------------- master
      \
       \
         -----------X (currently used by Developer A)

我的经理要求我在分支Y上创建另一个分支X以进行自己的更改。我需要确保X在我每天在分支上开始编码之前,分支中的分支更改是最新的Y

但是,问题是我每天都需要合并分支X以保持最新,这会导致合并冲突。在创建任何分支之前,我得到以下错误Y

$ git branch
  master
* X
$
$
$ git pull origin X
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm '
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
$

在与分支合并冲突较少的情况下,在我自己的分支上工作的最佳方法是什么X



1> Schwern..:

在与分支X合并冲突更少的情况下,在我自己的分支上工作的最佳方法是什么?

使用短暂的,集中的功能会从X分支分支出来。仅仅因为其他人都不是,就意味着你不能。在X上使用短暂的特征分支可以最大程度地减少X与特征分支的偏离,并减少冲突。

创建一个分支,在分支中实现一件事,然后在X漂移得太远之前尽快将其合并到X中。理想情况下,您的分支机构应该持续数天甚至数小时。

完成任务并合并分支后,请勿重复使用它。删除它。为下一个任务在X上创建一个新分支。


处理工作的流程与从master分支相同,只是您从X分支。

这是您的存储库的插图,其中Y分支了X。Y已过时。

A - B [origin/master]
     \
      C - D - G - H [origin/X]
           \
            E - F [Y]

您已将Y设置为track origin/X

$ git branch -u origin/X Y
Branch 'Y' set up to track remote branch 'X' from 'origin'.

建议不要重新合并上游分支而不是进行更新。这将使您的历史记录更加整洁,并使合并处理变得更加简单。运行一个git pull --rebase。Git不会获取并合并,而是会获取并重新设置基础。这会在X的最新版本上重播每个提交。

A - B [origin/master]
     \
      C - D - G - H [origin/X]
                   \
                    E1 - F1 [Y]

好像您一直在使用最新的X一样。这样可以避免造成很多混乱和不必要的“更新合并”。

这也使合并冲突的管理更加容易。不必一次用X处理所有合并冲突,您可以逐个提交地处理它们。首先,您处理E和X之间的冲突,然后处理F和X。每次提交将冲突分开,可以更轻松地了解冲突和原因。

您可以在中将其设置为默认值.gitconfig。确实需要一些习惯。

[pull]
        rebase = preserve

无论是合并还是变基,解决冲突都是相同的基本过程。解决Git中的冲突就像同事打电话给您以帮助进行编辑一样。Git将尽其所能地合并并分阶段(git add)工作。当遇到无法解决的问题时,它将编辑文件以显示使用冲突标记无法解决的问题,并将这些位暂存,并要求人员(您)来解决。您编辑文件以修复它们,暂存(git add),然后通过告诉Git继续进行下一次提交git rebase --continue

或决定一切都发生了很大的错误,而您要重新开始git rebase --abort

完成功能设置后,将Y合并到X中(或让Bob执行),删除Y,然后为下一个功能从X开始新的分支。


主节点有一个分支X,其他技术人员当前正在使用该分支X进行自己的更改。未来几周X分支上将有许多提交。

现在,撇开为什么长期存在的分支机构和个人分支机构是一场噩梦的最佳选择,这是一个可避免的问题。

要素分支具有明确定义的目的和明确定义的合并点。相反,个人分支机构没有重点。它们可以包含Bob如今正在处理的所有内容。他们没有尽头。他们成为长寿的分支。

长寿的树枝是一场噩梦,最好避免。随着它们之间越来越多的分歧,master它们将接受越来越多无关的更改,并且越来越不可能被合并。为了使它们保持最新状态master(如果他们不愿意这样做),就必须进行越来越多的工作,并且越来越多的工作必须进入分支机构的分支机构管理。

最糟糕的是长期存在的个人分支机构。它包含Bob一直在从事的工作。谁知道那里有什么变化?他们都应该做什么?做他们的工作?这些变化是好是坏?这正是鲍勃决定要做的。合并是对鲍勃的信心的全部或全部飞跃。

如果可能,请尽快关闭分支X,避免使用个人分支,而转而使用寿命短,定义明确的特征分支。好的分支机构管理已经足够困难了。每个人的生活都会因此而变得更好。


推荐阅读
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
  • 本文档介绍了在使用GitLab进行数据仓库项目开发时,如何管理和维护代码版本,包括非标准gitflow工作流下的分支结构及其权限设置,以及git commit message的规范。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • SonarQube自动化代码扫描的安装与集成实践
    SonarQube是一款强大的开源代码质量管理平台,支持多种编程语言。通过集成不同的开发工具和CI/CD流程,SonarQube能够提供全面的静态代码分析服务,帮助开发者早期发现并修复代码缺陷,从而提高软件质量和安全性。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 优化Jenkins首次启动速度
    本文详细描述了在启动Jenkins后遇到的长时间加载问题,并提供了一种通过修改更新中心配置文件来显著提升启动速度的有效解决方案。 ... [详细]
  • Jenkins 是持续集成和持续交付(CI/CD)领域中的领先平台,在全球范围内拥有广泛的用户基础。本文将介绍 Jenkins 在中国市场的最新举措,以及为促进中文用户社区发展所采取的具体行动。 ... [详细]
  • 解决Jenkins实例离线问题的新方法
    针对新版Jenkins镜像遇到的‘实例离线’问题,本文提供了一种通过调整Linux系统防火墙设置的有效解决方案,旨在为遇到类似问题的用户提供新的思路和帮助。 ... [详细]
  • 本文详细介绍了如何通过修改 Jenkins 的配置文件来解决因权限设置不当导致的登录后页面为空的问题,包括多种权限配置策略的选择与应用。 ... [详细]
  • Jenkins 安装指南:Windows 平台详解
    本文详细介绍了如何在Windows平台上安装和配置Jenkins,包括安装步骤、启动方法及基本的系统配置,旨在帮助初次使用者顺利搭建持续集成环境。 ... [详细]
  • Jenkins更新指南
    本文档详细介绍了如何准备和执行Jenkins的升级过程,包括从官方源下载最新镜像、镜像的本地处理与上传至私有仓库,以及通过修改配置文件和重启服务完成Jenkins的版本更新。 ... [详细]
  • Page Object 是一种设计模式,用于实现 Selenium 的最佳实践,它通过将 Web 应用的页面展示逻辑与测试代码分离来简化测试过程。采用 Page Object 模式的主要目的是为了提高测试代码的可维护性,减少重复代码,使测试更加结构化。 ... [详细]
  • 本文档详细规划了从基础到高级的软件测试学习路径,包括但不限于测试基础、Linux和数据库、功能测试、Python编程、接口测试、性能测试、金融项目实战、UI自动化测试等内容,旨在为初学者和进阶者提供全面的学习指导。 ... [详细]
author-avatar
西边升起的太阳2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有