如何使测试分支与主分支保持同步并拥有一个合并到两者的功能分支

How to keep a test branch in sync with master and have a feature branch that merges to both

我有三个分支:

master 和 bug-fix 存在于本地和远程存储库中。

要求:

a) 我想让 local-test-environment 与 master 保持同步,唯一的区别是本地配置不能出现在远程服务器上,因为它包含身份验证机密。 (我目前在 local-test-environment(这是一个仅限本地的分支)上提交了本地配置更改)

b) 我想在 local-test-environment 上工作,但是通过 bug-fix 分支提交并推送到远程服务器。

c) 我想从 bug-fix-branch 合并到 master。

修复错误后,理想情况下我想从 local-test-environment 中清除工作目录,但在下一个工作之前通过从 master 合并它来引入大修复。这是为了确保 local-test-environment 与 master 相同,除了测试配置。

我正在尝试找出最佳工作流程。

目前我正在本地测试环境的工作目录中进行更改,然后将它们存储起来并将它们应用到我提交并推送它们的错误修复分支。然后我回到 local-test-environment 并 stash apply 让他们回到那里并继续工作。 这个工作流程的问题是我真的只能这样做一次,否则下次我存储并转到 bug-fix-branch 时,存储的内容将超出我的需要。

选项

我可以 git 将 apply 应用于 bug-fix-branch 和 local-test-environment 并提交给两者。提交将是相同的。但是,我是否能够将更改从 master 引入本地测试环境,或者 git 将相同但独立的提交视为冲突?

或者,我可以提交错误修复分支,然后从错误修复分支中挑选到本地测试环境。如果我从 bug-fix 合并到 master,然后从 master 合并到 local-test-environment,我会遇到问题吗? git 会发现 master 和 local-test-environment 中存在的精选部分相同并忽略它们吗?或者我会遇到冲突吗?

如果这些工作流程都不行,还有更好的吗?

没关系!我想我刚刚解决了它。我将只提交 bug-fix 和 local-test-environment,然后一旦我将 bug-fix 合并到 master 中,通过重置或变基删除 local-test-environment 中的所有提交,然后从 master 合并到本地测试环境。现在看起来很明显。