繁体   English   中英

添加带有原点的远程+交换名称,给出错误:“ git fetch origin; git merge”有效,!=“ git pull”有错误-为什么/如何?

[英]add remote + swap name with origin, gives error: “git fetch origin; git merge” works, != “git pull” has error -why/how?

我已经搜寻了很多东西以了解这一点,并且我感觉它只是在滑过我的手指。 这里有相似但不完全相同的QnA。

问题:

$ git pull
Your configuration specifies to merge with the ref 'master'
from the remote, but no such ref was fetched.

git fetch提供任何内容,其次是git merge origin ,表示Already up-to-date. ,这是我期望git pull正确运行的结果。

$ cat .git/config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "official"]
    url = git://github.com/freenet/wininstaller-official.git
    fetch = +refs/heads/*:refs/remotes/official/*
[remote "origin"]
    url = git://github.com/freenet/wininstaller-staging.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    tagopt = --tags
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "t"]
    remote = origin
    merge = refs/heads/master

$ cat .git/refs/remotes/origin/master
1a30b106723624321366f40a078c9ca4c28394ec

$ cat .git/refs/heads/master
1a30b106723624321366f40a078c9ca4c28394ec

为什么git pull会产生错误,而git fetch / merge会产生预期的输出?

背景:我克隆了一个git仓库,freenet / wininstaller-official.git,然后看到wininstaller-staging.git并认为:“那里可能存在一些非实质性的重叠,我应该将“ staging”添加为第一个仓库的远程站点。 是的,现在我们正在用git做饭! 这将非常有效。

然后,我想到了“分阶段进行跟踪可能更好,让我们称该原点为好,让我的本地主跟踪新的原点/原点”。 哇! 我是Uber-elte!

因此,我按上述方式重命名了遥控器,删除了本地主机,签出跟踪新的原点/主机的新主机。

git fetch; git merge git fetch; git merge似乎证明它是正确的!

但是可惜, git pull错误。 麻烦是我。 毕竟不是那么超级精英:(

TIA

git pull的错误是抱怨它找不到您告诉它要合并的分支。 我怀疑这是因为你有tagopts = --tags配置为origin ,并与该选项, git fetch 不取分支头 尝试删除该行,然后再次运行git pull

解释pull / fetch-and-merge区别:手动运行git fetch ,它没有--tags选项,因此它确实会提取分支头。 因此,在那之后, origin/master就可以存在了,并且可以从中合并。


可能还需要补充一点:使用git merge origin/<branch-name>更为正常,这比git merge origin更明确。 在这种更不寻常的情况下,Git是解释origin作为分支refs/remotes/origin/HEAD -即当前分支(或承诺)的远程仓库origin上次你从那里获取。 最好使用git merge origin/<branch-name>以避免混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM