【问题标题】:Would this sequence cause 'master' to be merged into branch 'A'?这个序列会导致“master”合并到分​​支“A”中吗?
【发布时间】:2015-04-28 23:17:06
【问题描述】:

我遇到了 master 合并到分支“releasebranch1”的任何问题。

场景如下。

团队中的大多数人都在开发发布分支:“releasebranch1”。 有时会进行需要复制到“主”的错误修复。所以我们这样做:

  1. 将修复提交到 releasebranch1。
  2. checkout master,然后是 'git cherry-pick xxxx'
  3. 然后使用“git push origin master”将cherry-pick 合并到远程。

如果 - 当 master 被签出时 - 所以当前分支是 master,然后执行:

'git push origin releasebranch1' 而不是 'git push origin master'

这会将 master 合并到 releasebranch1 中吗?

这似乎正在发生(除非我弄错了)。 可能发生的唯一另一件事是有人正在执行:

git 合并大师

当他们不应该的时候。我看到的症状是主代码不应该出现在分支中。

【问题讨论】:

    标签: git merge branch master


    【解决方案1】:

    不,git push 永远无法创建合并提交,合并总是在本地发生。

    所以这只能由某人在 releasebranch1 上合并 master 引起。

    【讨论】:

      【解决方案2】:

      git push origin releasebranch1 将获取您当前的分支并将更改推送到远程origin/releasebranch1。 Git 将接受您在master 上的更改,并尝试使用它可以更新的origin/releasebranch1。这不会导致合并提交,但会导致 master 上的提交现在位于可供其他人拉取的远程分支上。您可以将任何本地分支推送到任何远程。

      为避免此问题,请将您的分支设置为跟踪正确的远程,您所需要做的就是git push,您不必担心人们不小心将数据推送到错误的分支。

      要设置跟踪(如果还没有):git push -u origin <branchname> 在您想要的分支上。您可以通过git branch -vv查看本地分支机构正在跟踪的分支机构。

      【讨论】:

      • origin/releasebranch1 不是远程,而是远程跟踪分支。遥控器称为origin。如果远程releasebranch1 上有任何不在master 上的提交,git 将拒绝推送。
      • 如果提交发生分歧并且需要合并,Git 将停止推送。但是如果远程的头在本地分支中,推送将更新远程分支,随后的提交会更新它。
      • 是的,这基本上就是我所描述的。
      • 除了OP的问题不能只由合并引起外,还可以通过push发生。
      猜你喜欢
      • 2018-12-15
      • 2017-05-05
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2020-10-11
      相关资源
      最近更新 更多