虽然git pull myremote mybranch
工作正常但我无法发现如何git merge myremote mybranch
。
首先,这是有问题的遥控器:javadba
:
$ git remote
javadba
origin
这是有问题的远程/分支:javadba/memfix
。
`git fetch --all`
刚刚执行,发现了一堆远程更新。请注意,当前的git repo是目前在该特定的远程/分支上:
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 fetch
和git pull
仍然正常工作?)对其中任何一个的任何见解?
答案 0 :(得分:2)
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