从当前工作的分支机构 - git分支



我们严格不遵循jenkins管道代码的gitflow工作流程。

有一个来自master的分支X,目前由其他技术人员用于自己的更改。在接下来的几周内,有很多提议在分支X

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

我的经理要求我在分支X上创建另一个分支Y,以进行自己的更改。我需要确保,分支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 <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
$

与分支X的合并冲突较少的我自己的分支机构的最佳方法是什么?


与分支X的合并冲突更少的合并冲突?

的最佳方法是什么

使用分支X上短暂的,专注的功能分支。仅仅因为其他人并不意味着您不能。使用短寿命的特征分支X X最小化X可以从您的功能分支分歧并减少冲突。

在分支中制作一个分支,实现一件事,然后将分支尽快合并到X中,然后x可能漂移太远。理想情况下,您的分支机构应该持续数天,如果不是数小时。

完成任务并合并了分支,请不要重复使用它。删除它。为下一个任务做一个新的分支。


处理此操作的工作流与主人分支相同,除非您是从x。

分支的

以下是您的存储库的插图。

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

您已将Y设置为跟踪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上工作。这避免了大量令人困惑和不必要的"更新合并"。

这也使管理合并冲突更加容易。您无需立即处理所有合并冲突,而是您可以逐步提交。首先,您要处理E和X之间的冲突。然后f和X。分类每个提交的冲突使您更容易看到什么是冲突以及为什么。

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

[pull]
        rebase = preserve

无论您是合并还是折叠,解决冲突是相同的基本过程。解决GIT的冲突就像是一个呼吁您帮助编辑的同事一样。GIT将尽可能地合并并阶段(git add(的工作。当它遇到某些内容时,它无法处理它可以编辑文件,以显示其无法用冲突标记来处理的内容,并使这些位未分布,并要求人类(您(弄清楚它。您可以编辑文件以修复它们,阶段(git add(,然后告诉Git继续使用git rebase --continue

或确定一切都变得非常错误,您想重新开始git rebase --abort

完成功能后,将y合并到x(或让鲍勃做(,删除y,然后启动一个新的分支X以供下一个功能。


有一个来自Master的分支X,目前由其他技术人员用于自己的更改。在接下来的几周内,有很多提议在分支x。

现在,最好避免长期生活和个人分支机构。

功能分支在合并时具有明确定义的目的和明确定义的点。相比之下,个人分支没有重点。他们只能包含鲍勃今天正在从事的任何东西。他们没有终点。他们成为长期的分支。

长期生活的树枝是最好避免的噩梦。随着他们越来越多地与master分歧,他们会越来越多的无关变化,并且合并的可能性越来越少。越来越多的工作必须与master保持最新状态(如果他们打扰的话(,并且越来越多的工作必须进入分支机构。

最糟糕的是一个长期的个人分支。它包含鲍勃一直在做的任何事情。谁知道那里发生了什么变化?他们应该做什么?做他们的工作?这些变化好还是坏?他们正是鲍勃决定做的。合并它是鲍勃信仰的全部或全无的飞跃。

如果可能的话,尽可能快地关闭分支X,避免个人分支,然后移动使用简短的,明确定义的特征分支。良好的分支机构管理足够艰难。每个人的生活都会更好。

最新更新