“git fetch”后 FETCH_HEAD 引用未正确更新

2023-11-22

我有一个从远程存储库中提取的本地存储库。跑步git pullgit fetch; git merge FETCH_HEAD用于执行完全相同的操作,正如预期的那样的描述git pull:

描述

将远程存储库中的更改合并到当前分支中。在默认模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。

目前,出乎意料的是,正在运行git fetch停止更新了FETCH_HEAD正确引用。FETCH_HEAD现在坚持旧的提交。跑步git fetch将所有更改下载到远程跟踪的分支,但 FETCH_HEAD 保持不变,无论它在哪个分支中运行。

# currently in branchone
> git fetch

# branchone is up to date since...
> git rev-parse branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c

# ...its in the same commit as the remote branch
> git rev-parse origin/branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c

# however FETCH_HEAD shows something different
> git rev-parse FETCH_HEAD
37301df96597ac037f8e7e846fea6fc7df77bea5

git pull仍然执行正确的任务。然而运行git fetch; git merge FETCH_HEAD会做一些不同的事情,因为FETCH_HEAD指向错误的提交。

是否有任何设置或问题可能会造成混乱git fetch行为?


Running git fetch不带任何选项将获取遥控器中的所有引用并将它们写入.git/FETCH_HEAD文件。文件的内容通常如下所示:

37301df96597ac037f8e7e846fea6fc7df77bea5 branch 'master' of github.com:user/repo
593539e8a98ba5980d4b645db3b0f506bb9b6a2c not-for-merge branch 'branchOne' of github.com:user/repo

当你在下面有一个这样的文件时.git目录中,您可以将其用作参考,只要该文件中的第一个内容是 40 个字符的十六进制数字,或者是实际与现有提交匹配的较短的十六进制数字。

# This file can be used as a reference
> cat .git/MAGIC_HEAD
deadbeefdeadbeefdeadbeefdeadbeefdeadbeef lorem ipsum
the rest does not really matter
refrigerator

# And thus it will be interpreted by many git commands like this
> git rev-parse MAGIC_HEAD
deadbeefdeadbeefdeadbeefdeadbeefdeadbeef

知道了这一点我们可以看到运行后git fetch参考资料FETCH_HEAD将解决第一行中发生的任何事情

# Assuming the already mentioned contents of .git/FETCH_HEAD
> git rev-parse FETCH_HEAD
37301df96597ac037f8e7e846fea6fc7df77bea5

看起来像内容的顺序.git/FETCH_HEAD不保证首先包含当前分支的引用。

通过在不同的存储库中尝试它,似乎在某些存储库中第一行始终是当前分支,因此git fetch; git merge FETCH_HEAD按预期工作。然而在其他存储库上的内容.git/FETCH_HEAD的顺序会有所不同,并且第一行通常是对不同分支的远程提交的引用,从而使得FETCH_HEAD参考不正确。

为什么它的行为不同对我来说是个谜。

作为一个解决方案,如果git fetch remote_name branch_name仅使用此特定分支,并且只有该行会出现在内容中.git/FETCH_HEAD,使得FETCH_HEAD参考始终正确。

# Will only fetch branchone
> git fetch origin branchone

# FETCH_HEAD will contain only a single line
> cat .git/FETCH_HEAD
593539e8a98ba5980d4b645db3b0f506bb9b6a2c branch 'branchOne' of github.com:user/repo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“git fetch”后 FETCH_HEAD 引用未正确更新 的相关文章

  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • 如何合并两个连续的 git 存储库

    我有一个相当独特的情况 我有一个名为 Project1 的存储库 我在其中工作了一些时间 几个月 一年后 我创建了存储库 Project1 Again 从 Project1 停止的地方开始 现在 我希望修订历史记录是连续的 因此我希望它们合
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • VS 2015 + Bower:在防火墙后面不起作用

    Problem 在 Visual Studio 2015 中 使用 Bower 我的包在防火墙后面时恢复失败 并出现类似以下内容的错误 ECMDERR 无法执行 git ls remote tags heads git github com
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • Netbeans 和 Git,.obj 文件被忽略

    我正在开发一个涉及 obj 文件的小型 git 项目 当我查看 项目选项卡 时 我发现它们被忽略了 但如果我查看我的 gitignore 我无法理解为什么 DepthPeeling nbproject private DepthPeelin
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • 如何使用 AWS Lambda 安装 Git?

    我在代码提交存储库中有代码 我正在编写一个 lambda 函数来为代码提交存储库的每个签入 事件 构建代码 我无法安装 git 因此无法克隆存储库 我该怎么办呢 正如其他人提到的 在 lambda 上安装 git 要么非常困难 要么完全不可
  • Android 存储库初始化失败

    我想我非常仔细地遵循该网站的说明 http source android com source downloading html http source android com source downloading html 但是当我尝试这
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • VSTS:在构建过期的情况下自动变基/合并和重新排队构建验证门

    我们最近对 PR 上的构建验证门进行了更改 这样 如果另一个提交在当前 PR 完成之前进入主分支 则构建会 立即 过期 看here https stackoverflow com questions 49418800 vsts invali
  • Phonegap使用命令行工具添加插件

    我是phonegap的新手 我按照phonegap官方网站中定义的步骤使用命令行工具创建项目 nodejs 我成功创建项目并添加平台 但是 当我尝试添加插件时出现以下错误 命令 cordova plugin add https git wi
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • 为 RHEL 6 安装/构建 git-svn

    我无权访问 RHEL6 存储库 那么在 RedHat Enterprise Linux 6 上构建和 或安装 git svn 工具的最佳方法是什么 通过卸载现有的 yum擦除git 并从源安装最新的来设法安装git和git svn 1 7

随机推荐

  • 离散数据拟合:负二项式、泊松分布、几何分布

    在 scipy 中 不支持使用数据拟合离散分布 我知道有很多关于这个的话题 例如 如果我有一个如下所示的数组 x 2 3 4 5 6 7 0 1 1 0 1 8 10 9 1 1 1 0 0 我无法申请这个数组 from scipy sta
  • 如何调整一个克隆的形状/尺寸以影响场景视图中的所有其他克隆

    我想通过调整一个来更改 调整场景视图中多个克隆对象的形状 尺寸 该对象可以是需要扩展的四边形或线渲染器 例如 当一个游戏对象线渲染器在场景视图中扩展 使用鼠标 时 所有其他克隆都会受到影响 我知道在克隆一个对象之前调整它的形状 尺寸要简单得
  • LINQ 查询返回第一个结果的多个副本

    我在数据库中定义了一个视图 archiveContentPreviews 它将多个表连接在一起 并且在 Linq 中它有一个实体键 ArchiveID 我想使用以下简单查询来查询此视图 var x from fields in entiti
  • 纵向数据

    I ve been working with the R Orthodont dataset in the nlme package Just use install packages nlme library nlme head Orth
  • 比较两个 T-SQL 表的差异

    我有同一个数据库的两个实例 第一个数据库代表今天的数据 第二个数据库代表 6 个月前的数据 我需要找到特定表中条目子集的差异 对于两个表中都有 id 的条目 我想找到一种方法来仅查看不相同的行 有任何想法吗 Thanks SELECT t1
  • 在 .NET 控制台应用程序中,是否可以让一行文本始终在控制台中保持可见?

    我正在考虑向控制台应用程序添加一个简单的带宽监视器 我想知道是否可以使控制台窗口中的一行始终可见 我可以手动设置一些东西 将新的控制台输出传递到一个方法中 该方法将获取控制台的内容 清除控制台 在第一行添加带宽数据 然后将以前的每行信息重写
  • 用Java处理大数据结构

    我正在开发一个需要处理非常大的矩阵的 Java 应用程序 例如两个1000万 1000万的矩阵相乘 当然 Java 堆甚至没有足够的空间来存储这些矩阵之一 我应该怎么办 我应该使用数据库来存储我的矩阵并将每个需要的部分带入内存并将其逐个相乘
  • Phoenix 将 404 和 500 渲染为 JSON

    我开始了一个 Phoenix 项目 但没有使用 no html选项 现在我正在努力确保404 and 500错误呈现为 JSON 该项目在凤凰城启动1 1 0 并已更新为1 1 4 我已经修改了config config exs file
  • 为 OSGi 包寻找良好的开发环境 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我目前正在研究 OSGi 包的开发环境领域 我的目标是找到一种方法来轻松开发 测试和调试我将要编码的捆绑包 此外 我还有一些 文化 要求 我希望能够
  • 玩2.3隐式json转换导致空指针异常

    我正在尝试将 json 解析到我的案例类中DealFormMap case class DealFormMap limit Option Int filter Option DealFormFilterMap case class Deal
  • 在 apache localhost 服务器上使用 .htaccess 文件

    好吧 我已经启动了 Apache localhost 服务器并使用 PHP 和 MySql 运行 现在我希望能够使用 htaccess文件以及使用RewriteRule 但我不知道该把它放在哪里 我有这些目录 C dev progsApac
  • 如何在Python中安装VLC模块

    我尝试使用 PIP 安装 VLC 但出现以下错误 pip install VLC Downloading unpacking vlc Cannot fetch index base URL https pypi python org sim
  • Python:如何保存 os.system 的输出[重复]

    这个问题在这里已经有答案了 在 Python 中 如果我使用 wget 使用 os system wget 下载文件 它会在屏幕上显示如下 Resolving Connecting to HTTP request sent awaiting
  • 流畅断言:比较两个数字集合的近似值

    我有两个双精度数组 有没有办法使用 FluentAssertions 使用 BeApproximately 技术逐个元素地比较数组 一个范围值足以满足整个数组的需要 Example double source 10 01 8 01 6 01
  • 进程组必须有一个正在运行的领导进程吗?

    在类 Unix 操作系统中 如果一个进程 pid和它的pgid相等 则该进程是进程组的领导者 但是 如果进程领导者已经退出 并且同组中的其他进程仍在运行 那么谁是继任的领导者进程 没有继任领导者 一旦流程组领导者退出 该组就失去了领导权 没
  • 更新 pyplot.scatter 的位置和颜色

    我已经为此苦苦挣扎了一段时间 但无法让它发挥作用 我正在分块读取文件并从中绘制散点图数据 并且我想通过更新中每个块的散点图来 动画化 它for循环 并使其适应实时数据流 所以像这个丑陋的例子适用于单个图 x 1 2 3 4 y 4 3 2
  • Yocto:将内核模块配方添加到映像,但它不会在启动时加载

    出于测试目的 我使用 yocto 提供的示例配方来演示如何构建内核模块 SUMMARY Example of how to build an external Linux kernel module LICENSE GPLv2 LIC FI
  • 如何向 UIActivityViewController 对象添加不同的文本

    我实现了一个 UIActivityViewController 用于共享一些信息 在这种情况下 我有一个问题 是否可以在 facebook 共享 twitter 共享 或邮件共享之间制作不同的文本 设置的文本与其他文本不同 一个好的 UIA
  • 以编程方式生成 VSTS 的个人访问令牌

    我是否可以连接到 VSTS REST 端点 以便让用户自行提供另一个 PAT 最好是在当前到期前几天 我有一个时间表应用程序 现在正在连接到 VSTS 以获取工作项信息并更新所述工作项 但是 在某个时候 90 天 180 天或一年后 PAT
  • “git fetch”后 FETCH_HEAD 引用未正确更新

    我有一个从远程存储库中提取的本地存储库 跑步git pull也git fetch git merge FETCH HEAD用于执行完全相同的操作 正如预期的那样的描述git pull 描述 将远程存储库中的更改合并到当前分支中 在默认模式下