【问题标题】:Git process for keeping 2 branches in sync, with one exception [duplicate]用于保持 2 个分支同步的 Git 进程,但有一个例外 [重复]
【发布时间】:2015-12-19 01:14:38
【问题描述】:

我们有两个版本的管理站点,一个“简单”版本和“完整”版本,它们存在于同名的分支上。简单版有一个报告,完整版提供带有附加报告的选项卡。这两个版本是托管在不同 url 上的独立应用程序。

通常新的开发和错误修复发生在“完整”分支上,即使工作通常与两个分支相关。

我目前的(hacky)流程是:

  1. 对“完整”进行更改。
  2. 将更改合并为“简单”
  3. 手动删除显示附加报告的额外选项卡。这只涉及删除单个视图文件中的几行。

我的问题是:如何在 git 中完成同样的“异常同步”而不求助于手动文件更改?

【问题讨论】:

    标签: git


    【解决方案1】:

    这似乎不是应该通过源代码管理解决的问题。您可以通过拥有一个控制可用选项卡集的单个文件来做到这一点,并拥有该文件的两个版本(一个用于“完整”站点,一个用于“简单”站点),然后永远不要更改该文件。但一般来说,这里的方法是让该逻辑驻留在程序本身中,并通过配置、许可证文件或其他类型的控制机制来定义是显示“简单”还是“完整”选项卡集。

    【讨论】:

    • 我同意你的观点,但这也是我确信 git 可以 解决的问题(我认为),我想知道如何解决它git,提高我的 git 技能。
    • 在这种情况下,也许这篇文章会有所帮助:medium.com/@porteneuve/…
    【解决方案2】:

    如果您是唯一使用简单分支的人并且不介意更改其历史记录

    假设我们从只有完整分支的状态开始:

    git checkout full
    git checkout -b simple # create simple branch
    # remove extra tabs
    git commit # can make as many commits as you like
    

    现在说你需要更新完整版:

    git checkout full
    # make changes to full version
    git commit
    

    现在是重要的一点:

    git checkout simple
    git rebase full # now the simple branch is the same as the full branch but with the extra commit on top
    

    如果您在完整版本中更改某些内容与您以标准方式解决的简单版本中的更改冲突,rebase 命令可能会导致合并冲突。

    【讨论】:

    • 啊,有趣!因此,我没有合并,而是继续简单地前进,在完整的基础上,使用 rebase...
    • 是的,尽管这种方法的唯一缺点是您正在修改简单分支的历史记录。因此,如果多人使用该分支,最好进行合并,然后选择删除选项卡的提交
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多