我有一个相当简单的网页设置。开发工作在我的个人计算机上完成。当我对自己拥有的东西感到满意时,我便开始使用bitbucket。然后,转到生产服务器,发出git pull origin master
,一切正常。
随着应用程序的成熟,我需要创建一个开发(或登台)分支,该分支也可以在Web服务器上使用,并附加到其自己的数据库中,并可以用来测试新功能。
因此,我(想)要做的是创建一个名为staging
的新分支,并在Web服务器上占据一个单独的目录。我将有一个.gitignore环境文件,告诉它如何访问登台数据库。
一旦对开发机器上所做的更改感到满意,我将把它们推向阶段。然后,在“真实”世界中对它们进行测试之后,我将把这些更改合并到主服务器中,并且生产服务器将享受所有更新。
现在,我的问题:
请注意,我已经读过https://nvie.com/posts/a-successful-git-branching-model/,但是我无法弄清楚使它们全部正常运行所需的git命令。
答案 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涵盖了很多内容;如果您还没有的话,可能需要通读。