像往常一样,在我们的项目中,我们有一个主分支。基于此的部署分支将在其中修改设置。基于此的还有运行部署镜像的镜像分支。master分支不应包含任何更改配置的补丁。
在mirror分支中开发了一些小的功能和修复程序。因此,添加功能后,它看起来像这样:
master: history ?
deployment: ?? deployment-config
mirror: ?? mirror-config ?? feature
Run Code Online (Sandbox Code Playgroud)
现在,要将功能移回母版,我首先必须在mirror分支中对补丁进行重新排序:
master: history ?
deployment: ?? deployment-config
mirror: ?? feature ?? mirror-config
Run Code Online (Sandbox Code Playgroud)
现在我可以将其快速合并到大师中
master: history ?? feature ?
mirror: ? ?? mirror-config
deployment: ?? deployment-config
Run Code Online (Sandbox Code Playgroud)
然后将master合并到mirror中,并将其重新部署到master上
master: history ?? feature ?
mirror: ?? mirror-config
deployment: ?? deployment-config
Run Code Online (Sandbox Code Playgroud)
是否有可以使之自动化的插件或工具,因此
一般来说,我建议尝试摆脱配置提交情况。\xe2\x80\x99 不能只将配置存储在部署中吗?或者使用污迹过滤器,正如我在这里解释的:https ://stackoverflow.com/a/13616911/758345
\n如果 \xe2\x80\x99s 不是一个选项,让我回答你的问题,因为由于 git 中的分支是如此轻量级,所以有更简单的方法来实现你想要的。这些都不是完全自动化的,但非常简单,您绝对可以为此编写一些小脚本。
\n不太确定情况,但假设您进行了更改并想要提交它们:
\ngit reset --hard HEAD^
stash pop
同上:reset --hard
,做好你的工作,挑选老分支头
这个很简单:git merge mybranch^
如果您不想更改工作目录,并且您的 \xe2\x80\x9cconfig commit\xe2\x80\x9d 修改的文件没有被您的其他操作触及,您可以这样做:
\ngit reset HEAD^
git update-index --assume-unchanged
git update-index --no-assume-unchanged
你的配置文件--assume-unchanged
如果您通过脚本自动执行此操作,则可以使用 git通过查看配置提交来获取配置文件列表。如果您不想自动执行此操作,则可以跳过步骤 3 和 5,并确保您在步骤 4 中不提交\xe2\x80\x99t 配置文件。