如何从本地发展转向生产?

时间:2012-12-13 23:48:33

标签: git

我是git的新手并且无法找到合适的流程。我很困惑。

以下是我所拥有的:1个生产服务器(A)和各种本地机器(X)

我还做了什么:

  1. Git Init(iated)我的项目文件夹(A)
  2. Git Clone(d)在(X)
  3. 上的Dropbox文件夹中
  4. 在本地(X)开发了一个新功能,对其进行了测试并尝试将其推送到(A)
  5. 然后当然我意识到(A)不是一个我将不得不处理版本问题的裸回购..

    我想要的是什么:

    1. Git很好,很容易
    2. 在(X)上开发新功能并将我的提交推送到(A)(更改 应立即)
    3. 可以直接在(A)
    4. 上进行更改
    5. 能够在(A)和(X)之间添加“开发”服务器 方案没有太多麻烦
    6. 我知道我要求很多,但我已经查看了裸存储库,git flow,...但我不确定哪种解决方案最适合我。

1 个答案:

答案 0 :(得分:0)

假设你有权在(A)中执行git命令,如果你在(A)中有2个git repos,一个是一个裸Re​​po,另一个是一个工作树,那么它的价格会更低在更新(A)时再做一个命令。

你可以这样做:

  1. 在路径中初始化(A)中的裸仓库,比如说/path/to/bare/repo.git
  2. 从裸仓库中克隆(A)中的项目文件夹,假设在/ path / to / running / repo /中。这个不是一个简单的回购
  3. 开发人员可以将更改推送到A中的裸仓库。当一切看起来都很好时,正在运行的仓库从裸仓回购。

    有了这个,添加'开发服务器'就像从裸仓库中克隆一样容易。当然,此设置不符合您的声明,即(A)的更改应该是直接和立即的。但是如果你妥协的话,我认为它会更好。

    如果您真的想在(A)中只有一个非裸仓库,您可以更改该仓库中的分支。你可以这样做:

    1. 在(A)
    2. 中初始化非裸仓库
    3. 使用以下命令更改该回购的分支:git checkout -b production
    4. 在主分支或“生产”以外的任何分支中进行所有开发。当更改被推送到各自分支中的(A)中的repo时,将其合并到git merge的分支生产中。