1

设置

我们将主分支用于我们的实时环境。也就是说,master 上的所有内容都适合部署到实时环境中。

同样,我们使用我们的暂存环境运行的暂存分支。

任何更改都是在主题分支上开发的。这些将被合并到 QA 的 staging 中,一旦它们被清除以进行部署,主题分支将被合并到 master 中并被丢弃。

Master 和主题分支位于 Github 上,staging 仅存在于本地和存储库中,用于构建 staging 环境。

问题

有时主题分支会增加。它们已被合并到 staging 中,但无论出于何种原因(客户方面的时间限制、外部依赖等),它们都无法上线。通常这不是问题,它们只是在暂存中停留一段时间。

但是现在我有几个分支可能几个月都不会上线,当新的主题分支进入暂存时,它们开始引起合并冲突。

所以我想做的是清理工作:基本上将暂存分支恢复到 master 上的最新提交,然后重新应用所有可能在不久的将来完成的主题分支。之后,我希望能够将恢复的暂存分支推送到我们的暂存环境用于部署的远程存储库,而无需在所述存储库中进行额外的清理。

我该怎么做呢?非常感谢。

4

1 回答 1

2

不确定您是在寻求程序建议还是 git 命令来执行此操作。如果我说对了,这可能会有所帮助:

将暂存分支恢复到 master 上的最新提交

$ git checkout staging
$ git reset --hard master

重新应用所有可能在不久的将来完成的主题分支

$ git checkout topic1
$ git rebase -i staging
$ git checkout topic2
$ git rebase -i staging
...

注意:变基是一个经常被讨论的问题,因为它“改变了过去”。建议让所有开发人员保持同步(即确保他们的提交不涉及任何您要消除后验的内容)并且可能备份您的存储库。

rebase -i 启动交互模式。然后,您将能够将 topic1 更改应用到暂存头,就像您从那里开始一样。这里这里都有很好的文档。

于 2013-11-12T10:43:13.580 回答