代码之家  ›  专栏  ›  技术社区  ›  thornomad

Git的下一步:建立一个有凝聚力的工作流程

git
  •  5
  • thornomad  · 技术社区  · 15 年前

    我是Git和分布式版本控制的新手,但我在没有太多绊脚石的情况下管理了 init 我自己的本地源,在自己的Web主机上通过ssh设置一个私有的远程存储库(源),并执行基本的 pull push 从主人到主人。(我甚至测试了一个克隆!)

    我想我只有一个方向,工作流程在控制之中。不过,现在我开始考虑如何在开发、测试和生产之间进行移动。我发现的大多数教程都讨论了不同的用户合并、克隆、拉拽和推送,但在我的例子中,只有我自己处理来自不同来源的事情。

    我希望一个有经验的Git用户能够对我的工作流程提供一些洞察,并就如何处理合并、分支等问题提供一些建议(我还不太熟悉/不太熟悉)。

    以下是我将拥有的不同机器/位置:

    1. 远程主Git存储:ssh://git@example.com/git/myproject.git
    2. 家庭网络服务器,主开发盒(我坐在那里,私下里,做大部分工作)
    3. 远程Web服务器,测试版(面向公众): http://beta.example.com (生产前测试我的开发工作)
    4. 远程Web服务器,生产站点: http://example.com (希望真正的人使用这个网站)
    5. (偶尔)在笔记本电脑上四处走动(运行自己的本地Web服务器)。

    你会怎么处理?事先谢谢。

    3 回复  |  直到 15 年前
        1
  •  5
  •   pfote    15 年前

    我不认为在这里创建一个过于复杂的工作流程有什么意义,一个“中央”设置只会很好的imho。

    所以你有一个主要的遥控器,它应该是你的中心点,拥有所有的开发,遥控器的名字“起源”。 你工作在你的devel盒子上,做你的承诺,并且不时地把你的东西推到“来源”上。一旦你认为是时候发布了,你就给你的东西贴上标签(可能是beta版),把它推到源站,到你的beta服务器上,把标签从那里拉出来进行公共测试。重复,直到你有一个释放,你可以拉到你的生产机器…

    关于您的A/B问题(可能是您的devel机器和笔记本电脑):当然可以这样做,但不能简单地将您的更改从A或B推到原始位置。 假设您刚刚将机器A上的工作推到“原点”,我们称之为“17”。现在你的工作更进一步,创建地方州“18”到“20”。如果“origin”仍然是“17”,您可以毫无问题地将更改18-20推到origin,因为每个步骤都是前一个状态的直接后代。这在Git中被称为“快进”。

    但是,如果B的一个推力介于两者之间,那么“直接后代”这一行就会被打破,而A的一个推力也会失败。解决方案很简单,但是:a必须从原点提取,将b引入的所有更改合并到a中,然后它可以推动…

    希望能澄清问题。

        2
  •  2
  •   Azeem.Butt    15 年前

    如果你是一个人工作,那么如果你不想的话,你就不必进行分支或合并。Git只是比其他版本控制系统简单一点,所以 可以 像在其他地方使用标记一样使用分支。我强烈推荐O'Reilly这本书,它写得很好。

        3
  •  1
  •   lottadot    15 年前

    是的,它可以处理从A到B的变化,两者都被推过。然而,其中一个必须从原点拉出才能推动。因为其中一个将“过时”与起源,因为另一个已推到起源。