git合并工作与远程分支?
虽然git pull myremote mybranch
工作正常..我不知道该怎么办git merge myremote mybranch
。git合并工作与远程分支?
首先这里是有问题的远程:javadba
:
$ git remote
javadba
origin
这里是有问题的远程/分支:javadba/memfix
。
`git fetch --all`
刚刚执行,发现一堆远程更新。请注意当前的混帐回购协议是目前在那个特定的远程/分支:
54ee844..5162513 memfix -> javadba/memfix
* javadba/memfix
master
memfix
remotes/javadba/master
remotes/javadba/memfix
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/memfix
下已经尝试:
git merge myremote/mybranch
:
$ git merge javadba/memfix
warning: refname 'javadba/memfix' is ambiguous.
Already up-to-date.
git merge myremote mybranch
:
$ git merge javadba memfix
merge: javadba - not something we can merge
git merge
:
$ git merge
fatal: No remote for the current branch.
$ git checkout javadba/memfix
warning: refname 'javadba/memfix' is ambiguous.
M bin/runservers.sh
M bin/startStopServers.sh
M tensorflow/GpuClient.scala
Already on 'javadba/memfix'
我已经通过这项工作已经在先前的一套远程更新:在git pull
有正确的结果..但我不得不已经做git fetch --all
,这样真的不应该是必要的..?
两种可能性浮现在脑海中:
-
git merge remotebranch/localbranch
不工作,我的思考方式 - 有一些细微的不对劲上我的本地git仓库(但其
git fetch
和git pull
仍然正常工作?)
对这两者之一有何洞见?
git-merge
命令采用一个(或多个)分支(或标记或提交哈希...)的参数并将它们合并到当前分支中。
因此,假设你在你想合并到的分支中,这个命令应该可以合并远程分支。
$ git merge javadba/memfix
但是,唉,这不,因为你有一个名为javadba/memfix
一个本地分支,所以git
不知道是否要合并远程分支remotes/javadba/master
或当地分支机构javadba/master
。 以远程名称和斜杠开头命名本地分支通常是一个坏主意,也许你意外地做了这个事情?
在这种模糊不清的情况下,您可以使用分支的全名解决此问题。这是.git/refs
下的文件名,从refs/...
开始。例如,您的命令来合并远程分支将是:
$ git merge refs/remotes/javadba/memfix
或合并同名的地方分支:
$ git merge refs/javadba/memfix
而且你或许应该删除本地分支,与:
$ git branch -d refs/javadba/memfix
'javadba'是远程的名称:查看更新的OP,显示'git remote'的输出。根据这些信息,您的答案是否准确? – javadba
@javadba:我会说我还是对的。远程是'javadba'好的,但它并不妨碍你创建一个名为'javadba/memfix'的本地分支或标签。它只会让人困惑。你可以用'git branch -a'来检查一下。通常的输出会有远程分支'remotes/javadba/memfix'和本地跟踪分支'memfix',但我敢打赌你也有一个本地分支'javadba/memfix'。 – rodrigo
好吧,你是对的。那么我必须重新追溯我创建分支的步骤。感谢和奖励。 – javadba
是的,你可以合并一个远程跟踪分支。 –
TL; DR我无意中创建了一个分支'javadba/memfix' - 所以'git merge'命令实际上并未实际应用于* remote *分支:请参阅接受的答案。 – javadba
发表评论后,我看到了答案。很高兴你知道这个问题。我建议你做一些关于远程跟踪分支的进一步阅读,这是你称之为“远程分支”的正确名称。差别很小但很重要。 –