2

我在远程有三个分支(master、development、featurebranch)。我想要的是,当我推送branch1时,它应该尝试将其推送到开发分支或我喜欢的任何类型的分支。我已经看到了我应该这样做的例子

git push origin local_name:remote_name

但是当我尝试时,Git 会自动将本地分支合并到远程分支。我希望它在该分支上有一个拉取请求。GitHub上有这个漂亮的功能,我可以在其中切换并选择我想要合并的分支:

github上的分支选择

但是有没有办法在我将分支推送到远程分支时,将基本分支设置为我指定的远程分支?

4

1 回答 1

1

但是有没有办法在我将分支推送到远程分支时,将基本分支设置为我指定的远程分支?

这意味着避免:

x--x--x (branch1)                         x--x--x
                          ==> push ==>           \
          y--y--y (origin/remote-name)   y--y--y--M

而是得到:

                                     y--y--y--x--x--x

仅当在推送之前,您branch1已重新基于以下内容时origin/remote_name,这才有可能:

git fetch origin
git checkout branch1
git rebase origin/remote_name
git push branch1:remote_name

我们的场景就像 Master 分支一样,比方说实时应用程序,每次发现缺陷时,我们都会创建一个修复分支(应该从开发分支分支),创建我们的修复并首先将修复分支推送到开发分支测试和质量保证发生的地方。完成后,将其推回主控。

在您的情况下,您需要变基并推送到不同的分支,而不是 dev,因为dev代表不同的开发工作,持续修改之一,而不是 puctual 修复。

创建一个发布分支master,它代表您在(prod)之上一一集成的热修复程序。

每次看到错误时:

  • 为此创建一个分支bug
  • 修复错误
  • 将 bug 分支重新设置在release_branch
  • 推送bug分支供 QA 审核
  • 一经审核,推送至master
于 2013-11-29T19:44:00.780 回答