我们严格不遵循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,避免个人分支,然后移动使用简短的,明确定义的特征分支。良好的分支机构管理足够艰难。每个人的生活都会更好。