git - 当 git 显示“存储库是最新的”时,如何从远程存储库获取更改?
问题描述
我不确定是什么原因造成的,但我的本地仓库缺少来自 master/origin 的更改,我似乎无法得到它们。
- 当我尝试 a
pull
时,git 返回“存储库已经是最新的。没有要拉的更改。” - 我试图
merge
掌握/起源到我的本地存储库,但它并没有降低更改。 - 我将 master/origin 拉到我的本地 master repo 并尝试将本地 master 合并到本地分支。
- 我将 master/origin 合并到 [my branch]/origin,然后合并。
事实是,orgin/master 的内容与我的本地仓库不同。我如何告诉 git “从 master 获取更改并将它们带到我的本地分支”?
这似乎应该是一个简单的过程,所以不确定原因是什么。
解决方案
你问是否有某种方式“只是告诉 git 以某种方式比较两个分支”——这就是它正在做的事情,它没有发现任何差异。这是你的问题的根本原因——它没有找到你认为存在的差异。您需要找出为什么这些差异不是您期望的。
在我看来,有两种可能:
最简单的一个:您正在寻找的更改尚未推送到origin
. 与您的同事核实。
更复杂的一个:您的本地存储库未正确配置为从中提取origin
-origin
不是它应该是的,或者您的master
分支没有从正确的远程分支中提取。要诊断此类问题,请执行以下 (1):
- 在编辑器中打开终端(在 VS Code 中按 Ctrl+Backtick)
- 键入以下内容:
git remote -v
- 你会看到这样的东西:
origin git@github.com:user/my-repository.git (fetch)
origin git@github.com:user/my-repository.git (push)
这会告诉您在拉取(获取)或推送时将连接到哪个远程服务器和存储库。
- 键入以下内容:
git branch -vv
- 你会看到这样的东西:
develop abcde1234 [origin/develop] last commit message on develop
master 1234abcde [origin/master] last commit message on master
这列出了所有本地分支(即develop
, master
)以及它们“连接”到的远程分支(即 local develop
-> origin develop
)。
如果我的怀疑是正确的,那么您会发现以下一项或两项是正确的:
- origin 没有指向您期望的存储库,或者
- 您的
master
分支未连接到正确的原始分支。
如果是其中任何一种情况,那么您将不会将您认为要合并到本地分支中的提交origin/master
合并到本地分支中。
如果这两种情况都不是,那么这意味着您认为原始提交不存在 - 也许有人没有推动它们?
(1) 我在 Linux 机器上的 Visual Studio Code 中执行此操作。在 Windows 或完整的 Visual Studio 产品中,这些步骤可能会有所不同。
推荐阅读
- java - 为什么 2^31 不能存储在整数变量中但 - 2^31 可以?
- python - 控制 jupyterlab 服务器中使用的 CPU 数量
- python - 更改 seaborn barplot 的刻度标签
- c++ - 为什么不能“推导出”明确给出的模板参数
- sql - 使用异步库编写同步代码的最佳方法是什么
- c - 为什么我在 C99 错误中得到函数“cambiar_color”的隐式声明无效
- python - 为什么 re.search('\.', '.') 不返回 None?
- aws-lambda - 如何授权 lambda 使用 CDK 执行 ses:SendEmail?
- node.js - 带有动态参数的 NestJS 注释
- openshift - 如何将openshift容器平台企业安装为一体式安装