1

我是 git 新手,无法找到正确的流程。我越来越糊涂了。

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

我已经做了什么:

  1. Git Init(iated) 我在 (A) 上的项目文件夹
  2. Git Clone(d) 在我的 Dropbox 文件夹中 (X)
  3. 在本地开发了一个新功能(X),测试了它并尝试将其推送到(A)

然后我当然意识到(A)不是一个裸仓库,我将不得不处理版本问题..

我想要的是:

  1. Git变得又好又容易
  2. 在 (X) 上开发新功能并将我的提交推送到 (A)(更改应该立即生效)
  3. 能够直接在 (A) 上进行更改
  4. 能够在(A)和(X)之间添加一个“开发”服务器到方案中,而不用太麻烦

我知道我要求很多,但我已经研究了裸存储库、git flow ......但我不确定哪种解决方案最适合我。

4

1 回答 1

0

假设您有权在 (A) 中执行 git 命令,如果您在 (A) 中有 2 个 git 存储库,一个是裸存储库,另一个是工作树,则更好更新时的更多命令 (A)。

你可以这样做:

  1. 在路径中的(A)中初始化一个裸仓库,比如说 /path/to/bare/repo.git
  2. 从裸仓库克隆 (A) 中的项目文件夹,比如说在 /path/to/running/repo/ 中。这不是一个简单的回购

开发人员可以将更改推送到 A 中的裸存储库。当一切正常时,运行中的存储库会从裸存储库中提取更改。

有了这个,添加一个“开发服务器”就像从裸仓库克隆一样简单。当然,此设置不符合您对 (A) 的更改应该直接和立即的说法。但我认为如果你妥协的话会更好。

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

  1. 在 (A) 中初始化一个非裸仓库
  2. 使用以下命令更改该 repo 的分支:git checkout -b production

在主分支或“生产”以外的任何分支中进行所有开发。当更改被推送到各自分支的 (A) 中的 repo 时,将其合并到带有git merge.

于 2012-12-14T16:14:39.390 回答