除几个文件外,保持与master一起的最新发布分支

时间:2019-06-06 15:43:54

标签: git version-control git-merge

我有一个master分支和一个release分支。当我准备使用新的带编号的发行版本时,我想使用master分支进行更新,但在每个分支中维护composer.json和auth.php的不同版本。

我的composer.json在dev分支中需要一些dev-master版本,但在release分支中只需要版本发布。与本地开发版本相比,auth.php包含服务器端/发行版的不同数据库凭据。

除了基本的提交之外,我还是git的新手。

这是我第一个发行版所做的

git clone ...
cd ...
git checkout -b release 
nano composer.json //and change dev-master requires to 0.1.* requires
nano auth.php //and change db credentials
git add -A
git commit -m "composer and auth changes for release"
git push origin release
git tag -a 0.1.0
git push origin 0.1.0

然后,我就可以要求0.1.*作曲家了!

我要为下一个版本发布的内容是:

git clone ...
cd ...
git checkout --track origin/release //to switch to the release branch
git merge ... //get changes from master, but DO NOT overwrite the release-version's composer.json or auth.php
git push origin release
git tag -a 0.1.1
git push origin 0.1.1

然后,我将进入服务器并composer update进入我的网站的最新版本(位于私有存储库中)。

如何在git代码的第二个块中执行git merge行?

1 个答案:

答案 0 :(得分:1)

首先,我认为这个问题需要纠正:在合并之后,您实际上可能确实想更改composer.json以使用新的版本号,例如0.1.1

现在,要回答您的问题,我希望git merge master将在您创建0.1.1时做您想要的事情。由于composer.jsonauth.php在最后一个合并基础之后在release分支上进行了更改,因此git merge应该认识到,当它合并来自{{ 1}}。如果您还更改了master上的那些文件,则可能会发生冲突,这将使您有机会在完成合并之前对其进行修复。

如果事情没有按照我的描述进行,您能指出到底发生了什么吗?

无论master是否做正确的事,下一步是编辑git merge来表示版本composer.json并将其提交到0.1.1分支上。如果需要,请编辑并提交release,但是不需要。然后继续其余的工作流程(推,标记,推)。