代码之家  ›  专栏  ›  技术社区  ›  rpatters1

Git fetch不会从远程服务器获取最新的提交

  •  0
  • rpatters1  · 技术社区  · 2 年前

    我有一个双机(Mac和Win)设置,需要将更改从Windows机器转移到Mac。所以我在Win机器上进行更改,提交并将其推送到GitHub。到目前为止,一切顺利。(我已经确认新提交确实在GitHub上。)

    但我最近开始在Mac上遇到一个问题 git fetch origin 不从GitHub获取新提交。因此 git pull (有问题的分行已结账)告诉我它已经是最新的。

    [remote "origin"]
        url = git@github.com:upstream/myrepo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        pushurl = git@github.com:personal/myrepo.git
    [remote "upstream"]
        url = git@github.com:upstream/myrepo.git
        fetch = +refs/heads/*:refs/remotes/upstream/*
    
    [branch "mybranch-name"]
        remote = origin
        merge = refs/heads/mybranch-name
    

    我的问题是,有人知道为什么吗 git获取源

    目前,我对 upstream origin 从Mac)。但我很快就会失去对 上游 .

    如果重要的话,我通常使用SourceTree来管理git,但在这种情况下,我一直直接从命令行执行git命令,行为没有任何差异。我还有其他几个子模块没有这个问题,主存储库也没有。

    1 回复  |  直到 2 年前
        1
  •  1
  •   torek    2 年前

    独立的 url pushurl 以下是可疑信息:

    [remote "origin"]
        url = git@github.com:upstream/myrepo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        pushurl = git@github.com:personal/myrepo.git
    

    the git remote documentation 说:

    请注意,推送URL和获取URL即使可以不同地设置,也必须指向相同的位置。推送到推送URL的内容应该是如果立即从获取URL获取的内容。如果您试图从一个地方(例如,您的上游)获取数据并推送到另一个地方(例如,您的发布存储库),请使用两个单独的遥控器。

    不幸的是,这个警告显然是 只有 在中找到 文档它可能应该在 git fetch , git push git config 文件。

    (正如您在评论中确认的那样,这似乎是基本问题,显然SourceTree之所以这样做是因为只有SourceTree知道的一些原因。)