推送后分支旧提交?

Branch off old commit after push?

我有一个远程 master 和一个本地 master,我从它们中分支以获得功能。然后我将我的本地分支合并到本地 master,并将本地 master 推送到远程进行测试和部署(我必须推送到远程才能部署到测试和生产)。

我有两个功能,A 和 B。我已经将 A 推送到远程,它仍在测试中。我想开始 B 的工作,并且无论 A 的批准状态如何都能够部署 B。

我有两个问题:

  1. 我的本地 master 包含功能 A 是否阻止我部署 功能 B,因为我已经合并,或者将一个新分支从上一次提交中允许我有效地撤消 A 并推送 B(仅)?

  2. 如果以上是真的,如果A在我完成B之前获得批准,我可以将A合并到B吗? (我还有本地特色A分店。)

谢谢。

  1. 不,是* - git checkout -b branch_B origin/master 应该让您开始在新分支上工作
  2. 是 - git merge origin/master(假设 origin/master 包含批准的 'A' 分支,并且您当前的分支是 B)

* 这确实假设您可以 (a) 将本地 master 分支移动到新的 'B' 分支,或者 (b) 不必从本地环境推送到远程. 例如:git push origin B 而不是 git push origin master

作为参考,这里有一个 git 存储库和一个新的 B 分支:

*---* - origin/master
    |\
    | * - A, master, origin/A
     \
      * - B