Git(GitLab)-合并失败-尝试“在本地签出,查看,合并”的说明

时间:2018-12-13 19:59:21

标签: git gitlab merge-conflict-resolution

我尝试从用户分支合并到共享的“ develop”分支。我是这个项目上唯一的工作。 manbetx客户端打不开给我以下我正在努力的指示。

enter image description here

在步骤1中-当我执行“ git fetch origin”时-我已经在硬盘上的存储库中进行了操作。正确吗?如果我在一些新创建的目录中尝试,它将“致命:不是git存储库(或任何父目录):.git

对于步骤1的第二部分- 我收到错误: 致命的:分支名称'nw-ob210refactor'已经存在。

所以我尝试在末尾添加2,然后出现此错误: 致命的:'origin / nw-ob210refactor2'不是提交,而分支'nw-ob210refactor 无法从中创建

GitLab上的上述说明是否完整且正确;还是我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的git fetch origin是正确的。这将从名为origin的远程获取最新的引用。现在,当您尝试签出时,很可能您已经有该名称的分支(它甚至可能与远程分支处于同一提交)。

请确保在切换到分支后应该pull

git checkout nw-ob210refactor
git pull

然后继续执行步骤2。


注意,您可以创建第二个引用此远程分支的分支,但是我认为没有必要。如果您对如何使“添加2”方案起作用感到好奇,则必须将其添加到本地分支名称,而不是远程分支名称:

git checkout -b nw-ob210refactor2 origin/nw-ob210refactor

答案 1 :(得分:1)

git checkout -b localName origin/onlineName

创建一个新的本地分支。参见man git checkout

  

-b“ new_branch”
  创建分支“ new_branch”并在“ start_point”处启动它;如果已经存在,则将其重置为“ start_point”。这等效于用“ -f”运行“ git branch”;有关详细信息,请参见git-branch(1)

如果您有领导力,那么您当然不想再创建它。只能使用

git checkout nw-ob210refactor

git pull

  

如果我在一些新创建的目录中尝试

您需要重新做一次

git clone https://your/repository

首先下载您的存储库

  

所以我尝试在末尾添加2,但出现此错误:致命:'origin / nw-ob210refactor2'不是提交,因此无法从中创建分支'nw-ob210refactor'

如果您要创建新的本地分支,则必须在-b(=本地分支名称)之后更改参数,而不要尝试下载的源(远程分支名称):

git checkout -b checkout nw-ob210refactor2 origin/checkout nw-ob210refactor

更新

一旦您Already up to date,请继续执行步骤3

也可以在那里

git checkout -b develop origin/develop

如果develop分支到目前为止本地存在。否则只能再次使用

git checkout develop

仅切换到它。在这种情况下,请确保再次运行

git pull

现在您已经拥有本地分支机构和最新分支机构,可以合并了

git merge --no-ff nw-ob210refactor

这会将nw-ob210refactor合并为develop。反之,如果需要,只需切换到目标分支(checkout)并交换名称。

--no-ff读取no fast forward并表示

  

即使合并解析为快进,也要创建合并提交。合并未存储在refs / tags /层次结构中其自然位置的带注释(且可能带有符号)的标记时,这是默认行为。

或者简单地说,您想要创建一个特殊的提交,即使没有冲突,该提交也会显示消息merge from branch nw-ob210refactor into develop,实际上您可以合并分支而无需其他提交。在大多数情况下,这有助于更好地了解历史记录中合并的内容,并在以后需要时更轻松地还原内容。


合并后,

推回合并到的相应分支。在此示例中,develop如此

git push origin develop