保持发布分支与 master 保持最新,除了几个文件
Keep release branch up to date with master except a couple files
我有一个master分支和一个release分支。当我准备好使用新的编号发布版本时,我想使其与主分支保持同步,但在每个分支中维护 composer.json 和 auth.php 的不同版本。
我的 composer.json 需要开发分支中的一些 dev-master
版本,但应该只需要发布分支中的版本化版本。 auth.php 包含 server-side/release 版本与本地开发版本不同的数据库凭据。
除了基本提交之外,我是 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
然后我就可以 composer require 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
然后我将通过 ssh 连接到我的服务器并 composer update
以获取我网站的最新版本(位于私有存储库中)。
如何在 git 代码的第二个块中执行 git 合并行?
首先,我认为问题中的一个细节需要更正:合并后,您可能确实想要更改 composer.json
以获得新版本号,比如 0.1.1
。
现在,为了回答您的问题,我希望 git merge master
会在您即将创建 0.1.1 时执行您想要的操作。由于 composer.json
和 auth.php
在最后一个 merge-base 之后在 release
分支上被更改,git merge
应该认识到它应该在合并来自的更改时保留这些更改master
。如果您还在 master 上更改了这些文件,那么您可能会发生冲突,这将使您有机会在完成合并之前修复它。
如果事情不像我描述的那样有效,你能指出到底发生了什么吗?
无论 git merge
是否正确,下一步将是编辑 composer.json
以说明版本 0.1.1
并将其提交到 release
分支。如果需要,编辑并提交 auth.php
- 但不需要。然后继续您的其余工作流程(推送、标记、推送)。
我有一个master分支和一个release分支。当我准备好使用新的编号发布版本时,我想使其与主分支保持同步,但在每个分支中维护 composer.json 和 auth.php 的不同版本。
我的 composer.json 需要开发分支中的一些 dev-master
版本,但应该只需要发布分支中的版本化版本。 auth.php 包含 server-side/release 版本与本地开发版本不同的数据库凭据。
除了基本提交之外,我是 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
然后我就可以 composer require 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
然后我将通过 ssh 连接到我的服务器并 composer update
以获取我网站的最新版本(位于私有存储库中)。
如何在 git 代码的第二个块中执行 git 合并行?
首先,我认为问题中的一个细节需要更正:合并后,您可能确实想要更改 composer.json
以获得新版本号,比如 0.1.1
。
现在,为了回答您的问题,我希望 git merge master
会在您即将创建 0.1.1 时执行您想要的操作。由于 composer.json
和 auth.php
在最后一个 merge-base 之后在 release
分支上被更改,git merge
应该认识到它应该在合并来自的更改时保留这些更改master
。如果您还在 master 上更改了这些文件,那么您可能会发生冲突,这将使您有机会在完成合并之前修复它。
如果事情不像我描述的那样有效,你能指出到底发生了什么吗?
无论 git merge
是否正确,下一步将是编辑 composer.json
以说明版本 0.1.1
并将其提交到 release
分支。如果需要,编辑并提交 auth.php
- 但不需要。然后继续您的其余工作流程(推送、标记、推送)。