我查看了有关此问题的其他链接,但他们似乎没有回答我的问题。
我们完全重构了我们的应用程序。在重构期间,一个小团队(包括我自己)使用了一个名为refactor
的分支来保持我们的工作在源代码控制之下。当我们都完成并准备用重构的应用程序替换旧的应用程序时,我必须在GIT中创建4个分支:
development
qa
staging
master
我完成了如下:
refactor
副本我去了bash并发出命令git checkout -b development
development
分支推送到服务器qa
,staging
和master
我们现在开始了冲刺。所有开发人员都克隆了development
,然后发出了bash命令git checkout -b <featurename>
并在那里完成了他们的工作。完成后,他们使用以下命令将工作合并回development
:
git checkout development
git merge --no-ff <featurename>
git push origin development
稍后我自己进入并通过执行以下操作将development
合并到qa
。
在我qa
的本地副本上,我完成了以下步骤:
git pull
git mrege --no-ff origin/development
commit
和push
到qa
这适用于两位开发人员。就在昨天,开发人员将他的功能分支合并到development
,并要求我将development
合并到qa
。我可以在日志中看到该功能位于development
而不是qa
。在qa
时,我发出命令git pull
,它说一切都是最新的。然后我git merge--no-ff origin/development
说“已经是最新的”。
我无法将development
合并到qa
。为什么?
答案 0 :(得分:2)
你可能想:
$ git fetch
我的猜测是git pull
仅获取当前分支(qa
)。这意味着跟踪分支origin/development
没有得到更新。要检查这是否属实,请运行命令(git fetch
之前和之后):
$ git log qa..origin/development
如果qa
和origin/development
完全相同,则返回空。