使用git

时间:2018-06-19 16:48:16

标签: git bitbucket branch production master

我有一个相当简单的网页设置。开发工作在我的个人计算机上完成。当我对自己拥有的东西感到满意时,我便开始使用bitbucket。然后,转到生产服务器,发出git pull origin master,一切正常。

随着应用程序的成熟,我需要创建一个开发(或登台)分支,该分支也可以在Web服务器上使用,并附加到其自己的数据库中,并可以用来测试新功能。

因此,我(想)要做的是创建一个名为staging的新分支,并在Web服务器上占据一个单独的目录。我将有一个.gitignore环境文件,告诉它如何访问登台数据库。

一旦对开发机器上所做的更改感到满意,我将把它们推向阶段。然后,在“真实”世界中对它们进行测试之后,我将把这些更改合并到主服务器中,并且生产服务器将享受所有更新。

现在,我的问题:

  1. 如何创建本质上是master副本的新分支?
  2. 如何在Web服务器上创建一个新目录来容纳该分支,而又不影响另一个目录中的master分支?
  3. 如何在不破坏登台分支的情况下将登台分支合并到master分支中?

请注意,我已经读过https://nvie.com/posts/a-successful-git-branching-model/,但是我无法弄清楚使它们全部正常运行所需的git命令。

1 个答案:

答案 0 :(得分:1)

  

如何创建一个新的分支,该分支本质上是master的副本?

假设您当前在master分支上,则可以通过运行以下命令来完成此操作:

git checkout -b staging

这将基于您当前的分支创建一个名为staging的新分支。

  

如何在Web服务器上创建一个新目录来容纳该分支,而又不影响另一个目录中的master分支?

最简单的方法是简单地创建存储库的另一个副本,然后签出staging分支。例如:

git clone https://git.example.com/my/project staging
cd staging
git checkout staging

您可以使用-b的{​​{1}}参数来将其减少一级:

git clone

在任何一种情况下,您最终都有一个名为“ staging”的目录,其中包含从存储库中检出git clone -b staging https://git.example/com/my/project staging 分支的情况。

另一种方法是使用git worktree,但我认为最终会变得更加复杂。

  

如何在不破坏登台分支的情况下将登台分支合并到master分支中?

您通常会在本地主机上执行以下操作:首先检出staging分支,然后合并master分支:

staging

The Git Book涵盖了很多内容;如果您还没有的话,可能需要通读。