gpt4 book ai didi

git - 从 ClearCase 迁移到 Git

转载 作者:行者123 更新时间:2023-12-04 06:48:02 25 4
gpt4 key购买 nike

我来自 ClearCase 背景,我们(简单地说)有一个由三个步骤组成的工作流,其中最左边的主干是不稳定的,中间的主干是质量保证,最右边的是稳定的。即)

A  A  A
| | |
B C |
| /| |
C | E
| | /
D E
| /
E

如您所见,稳定主干仅包含已合格的版本。我在 Git 中复制此工作流程时遇到问题,因为版本 B、C 和 D 也被推送到 QA 主干,随后是稳定主干。在我看来,这违背了只包含稳定版本的“干净”主干的目的。

现在 Git 和 ClearCase 之间存在明显的根本差异,我确信这可以解释为什么我无法使用我以前的概念来指定工作流。

几天来,我一直在努力研究这些新的 SCM 工具(我也研究过 Mercurial),并且真的可以使用一些关于如何进行的指示。我们在 Mac 和 Windows PC 上进行开发,与命令行相比,绝大多数团队更喜欢 GUI 工具。

谢谢! :-)

最佳答案

首先你可以阅读这个comparison between ClearCase and Git

Middle-ground between submodules and branches? 中所述,当来自 ClearCase 时,可能会欺骗您的一个概念是组合(配置继承)的概念:参见 Flexible vs static branching (GIT vs Clearcase/Accurev) .

ClearCase 按文件工作(或按事件工作,每个事件都是一组文件)。
Git 逐个 blob delta 处理 blob delta(每个 blob 代表一个内容:如果两个文件具有相同的内容,则只存储一个“blob”)

这意味着您尝试通过分支/流和事件(如果您正在使用 UCM)在 ClearCase 中执行的操作将更有可能通过以下方式实现:

  • 提交重新排序(rebase --interactive,这是“git”方式,在 mercurial 中不推荐)
  • 和/或发布(这是一个 orthogonal dimension 到分支,特定于 DVCS)

重新排序+ merge (仅针对尚未“发布”,即未推送的提交):
您正在重新排序应用于代码的修改增量,以便仅 merge 您想要的内容。

trunk => trunk'  QA => QA'  stable
A B'
| |
B D'
| |
C A'----A' C''
| | | |
D C' C' A''-- A'' (--: merge to branch)
| | | | |
E E E E E
  • 重新排序 + 发布(推送):

您还可以通过自己的 git 存储库来表示每个代码提升。
一旦提交顺序正确,您将相关分支推送到 QA 存储库或稳定存储库。


重新排序(历史重写)是:

另见:

关于git - 从 ClearCase 迁移到 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3510682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com