- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我每天都使用 git 有一段时间了,这次我遇到了一个问题,我可以这样描述。
我有一个包含整个网站结构的存储库,Web 根目录位于存储库的根目录中。一切都很好,直到它成为单个站点的存储库。然而,同一个存储库现在用于多个站点 - 基本上是同一个站点,使用不同的语言,对模板进行细微调整,不同的图形等。这些东西自然是版本化的。
有一个 master 分支,它保存站点的原始源代码,我希望 master(或其他分支)保存所有站点通用的代码,因为最终会有更改过于特定于站点,无法包含在 repo 协议(protocol)的通用部分中。
接下来,每个使用此源代码的站点都有一个分支。所有这些分支(例如,site1、site2 和 site3)都是从 master 分支创建的,并且每个站点都克隆正确的分支。
嗯,这似乎是个好主意,直到我开始对所有地方进行更改。
如果我在 site1 分支上进行了更改,并且我需要将该更改复制到 site2 分支,我会从一个分支到另一个分支进行 cherry-pick 提交。 merge 是不可能的,因为 site1 分支上还有其他更改不属于 site2 分支。对于这种情况是否有其他更优雅的解决方案,或者 cherry-pick 正是为了这个目的?
现在,对我来说真正的“问题”是当我更改 master 时,然后我想将所有这些更改复制到所有分支。自然地,考虑到所有分支都是 master 的后代,并且我确实想要在所有 site* 分支中进行这些更改,我切换到每个分支并 merge master。
这为所有分支创建了一个非常难看的历史记录。每一轮 merge 都会使图形变得相当复杂,这使我得出两个结论:
为了说明我的“问题”,我将给出在创建这些分支后得到的图形图像,添加一些特定于分支的提交,挑选其中的一些,添加并 merge 来自主分支的一个提交到所有分支,将一两个提交到特定分支,然后再进行一次主到所有 merge 。
我不知道,我喜欢简单,也许我不习惯看到像这样难以理解的图表(恐怕随着每次 merge ,它只会变得更加复杂)。
我想我可以一路 cherry-pick ,并拥有整洁的历史图表,但这听起来也不对,因为我可能会连续进行多次提交,然后忘记选择其中一个给所有人其他分支...
那么...您有什么想法、经验和建议不介意分享吗?
更新:我选择了我对已接受答案的评论中描述的解决方案。感谢所有做出贡献的人!
更新 2:尽管它与这个问题没有紧密关系,recently I stumbled upon this model of branching这似乎适用于几乎任何有组织的开发周期,以 GIT 作为底层 DVCS。这真是一本好书。推荐。
最佳答案
备选答案:
您可以将抽象从分支级别移动到存储库级别。使用 master 分支创建一个主仓库。为每个站点克隆此存储库。在 master 分支上进行更改时,将这些更改 pull 入每个站点 repo。这样一来,每个 repo 协议(protocol)只需要一个主分支。
原答案:
当 master 分支被更改后,您可以将其他分支 rebase 到更新后的 master 分支上。让我们假设你有 pl_site 基于 master 上的一些提交并且 master 已经改变:
o---o---o---o---o master
\
o---o---o---o---o pl_site
在你rebased pl_site之后,它看起来像:
o---o---o---o---o master
\
o'---o'---o'---o'---o' pl_site
请注意,对 pl_site 的 rebased 版本的提交是新的。 pl_site 现在包含对 master 所做的更改。
命令:
$ git checkout pl_site
$ git rebase master
关于git - "Layering"git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977348/
我是 Keras 新手,我正在尝试获取 Keras 中的权重。我知道如何在 Python 中的 Tensorflow 中执行此操作。 代码: data = np.array(attributes, '
我正在尝试为上下文强盗问题 (https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part
我尝试在单击时向 map 添加新标记,并尝试保存标题和描述以在标记悬停时显示,但出现以下错误: Cannot read property 'add Layer' of undefined Javasc
我想要一个传单图层控件,我可以在其中选择一个基础图层,并使这个基础图层本身成为一个 LayerGroup,我可以从中选择要显示的子图层。我正在考虑一个设置,我单击一个单选按钮来选择基础层(层组),然后
我在 GIMP Script-fu 和过程浏览器中遇到了一个简单的问题。 我正在尝试在具有 40 层的图像中向上/向下移动一个层。让我们调用图像 test.xcf 和所述层 Chromask-snap
我有一个(非常大的)脚本在 InDesign 中运行,该脚本在某一时刻将库资源放置到页面上,然后将其移动到特定图层。此脚本在我们这里的所有计算机上都运行良好,但仅当当时 InDesign 中没有打开其
在一些使用 tf2 的 Tensorflow 教程(例如 Neural Machine Translation with Attention 和 Eager essentials )中,他们定义了自定
现在我无法解决依赖性,怎么了? 公司会更改名称吗?但是,我在他们的网站上看到它,但没有“com.layer.atlas:layer-atlas”,但是我的应用程序包含此依赖项,谁能告诉我原因? 最佳答
我使用 Keras 并尝试将两个不同的层连接成一个向量(向量的第一个值是第一层的值,另一部分是第二层的值)。 其中一层是密集层,另一层是嵌入层。 我知道如何合并两个嵌入层或两个密集层,但我不知道如何合
我正在开发一个类来创建各种对称 AE。我现在把这个类移植到TF 2.0,比我想象的要复杂。但是,我使用层和模型的子类来实现此目的。因此,我想将多个 keras 层分组为一个 keras 层。但如果我想
我正在为 CAGradient 设置动画 let gradientChangeAnimation = CABasicAnimation(keyPath: "colors") gradientC
什么是使用 OOP 在业务逻辑对象和数据库之间分层的良好设计? 最佳答案 这些中的任何一个都可以( from Fowler's POEAA ): 数据源架构模式: 表数据网关:充当数据库表网关的对象。
我正在尝试将一些 UIImages 渲染成一张我可以保存在我的相册中的图像。但是好像 layer.renderInContext 没有考虑图层蒙版? 当前行为:照片保存,我看到了 mosaicLaye
哇,这完全令人困惑,而且 dojo 1.8 文档似乎是围绕构建层的完整 clusterf**k。有人知道那里发生了什么吗? 在构建脚本示例配置文件中,示例 amd.profile.js 有 profi
我的 spacemacs 是 0.200.3@25.1.1 每次启动spacemacs时都会收到警告,如何解决? Warnings: - dotspacemacs-configuration-laye
引用是这样的: There's no problem in Computer Science that can't be solved by adding another layer of abstr
我正在使用 Keras 并且有一个自定义层,但是当我使用它时,会发生以下错误,我不知道问题是什么。你能帮我解决这个问题吗?奇怪的是,当我在另一个系统上使用相同的代码时,没有出现此错误! import
我应该什么时候使用 Input我什么时候应该使用 InputLayer ?在 source code有一个描述,但我不确定它是什么意思。 输入层: Layer to be used as an ent
我正在尝试构建一个可以在音频和视频样本上进行训练的模型,但出现此错误 ValueError:请使用“Layer”实例初始化“TimeDistributed”层。您传递了:Tensor("input_1
我正在实现一个需要支持 mask 的自定义 tf.keras.layers.Layer。 考虑以下场景 embedded = tf.keras.layer.Embedding(input_dim=vo
我是一名优秀的程序员,十分优秀!