首页 > 解决方案 > 当 git 显示“存储库是最新的”时,如何从远程存储库获取更改?

问题描述

我不确定是什么原因造成的,但我的本地仓库缺少来自 master/origin 的更改,我似乎无法得到它们。

事实是,orgin/master 的内容与我的本地仓库不同。我如何告诉 git “从 master 获取更改并将它们带到我的本地分支”?

这似乎应该是一个简单的过程,所以不确定原因是什么。

在此处输入图像描述

标签: gitvisual-studiogithub

解决方案


你问是否有某种方式“只是告诉 git 以某种方式比较两个分支”——这就是它正在做的事情,它没有发现任何差异。这是你的问题的根本原因——它没有找到你认为存在的差异。您需要找出为什么这些差异不是您期望的。

在我看来,有两种可能:

最简单的一个:您正在寻找的更改尚未推送到origin. 与您的同事核实。

更复杂的一个:您的本地存储库未正确配置为从中提取origin-origin不是它应该是的,或者您的master分支没有从正确的远程分支中提取。要诊断此类问题,请执行以下 (1):

  1. 在编辑器中打开终端(在 VS Code 中按 Ctrl+Backtick)
  2. 键入以下内容:git remote -v
  3. 你会看到这样的东西:
origin git@github.com:user/my-repository.git (fetch)
origin git@github.com:user/my-repository.git (push)

这会告诉您在拉取(获取)或推送时将连接到哪个远程服务器和存储库。

  1. 键入以下内容:git branch -vv
  2. 你会看到这样的东西:
develop      abcde1234 [origin/develop] last commit message on develop
master       1234abcde [origin/master] last commit message on master

这列出了所有本地分支(即develop, master)以及它们“连接”到的远程分支(即 local develop-> origin develop)。

如果我的怀疑是正确的,那么您会发现以下一项或两项是正确的:

  1. origin 没有指向您期望的存储库,或者
  2. 您的master分支未连接到正确的原始分支。

如果是其中任何一种情况,那么您将不会将您认为要合并到本地分支中的提交origin/master合并到本地分支中。

如果这两种情况都不是,那么这意味着您认为原始提交不存在 - 也许有人没有推动它们?


(1) 我在 Linux 机器上的 Visual Studio Code 中执行此操作。在 Windows 或完整的 Visual Studio 产品中,这些步骤可能会有所不同。


推荐阅读