GIT合并尝试但说“最新”

时间:2016-03-01 16:43:20

标签: git merge

我查看了有关此问题的其他链接,但他们似乎没有回答我的问题。

我们完全重构了我们的应用程序。在重构期间,一个小团队(包括我自己)使用了一个名为refactor的分支来保持我们的工作在源代码控制之下。当我们都完成并准备用重构的应用程序替换旧的应用程序时,我必须在GIT中创建4个分支:

  • development
  • qa
  • staging
  • master

我完成了如下:

  1. 使用我的refactor副本我去了bash并发出命令git checkout -b development
  2. 我将development分支推送到服务器
  3. 我按照qastagingmaster
  4. 的步骤1和2进行操作

    我们现在开始了冲刺。所有开发人员都克隆了development,然后发出了bash命令git checkout -b <featurename>并在那里完成了他们的工作。完成后,他们使用以下命令将工作合并回development

    • git checkout development
    • git merge --no-ff <featurename>
    • git push origin development

    稍后我自己进入并通过执行以下操作将development合并到qa

    在我qa的本地副本上,我完成了以下步骤:

    1. git pull
    2. git mrege --no-ff origin/development
    3. 然后我commitpushqa
    4. 这适用于两位开发人员。就在昨天,开发人员将他的功能分支合并到development,并要求我将development合并到qa。我可以在日志中看到该功能位于development而不是qa。在qa时,我发出命令git pull,它说一切都是最新的。然后我git merge--no-ff origin/development说“已经是最新的”。

      我无法将development合并到qa。为什么?

1 个答案:

答案 0 :(得分:2)

你可能想:

$ git fetch

我的猜测是git pull仅获取当前分支(qa)。这意味着跟踪分支origin/development没有得到更新。要检查这是否属实,请运行命令(git fetch之前和之后):

$ git log qa..origin/development

如果qaorigin/development完全相同,则返回空。