'git pull origin mybranch' 使本地 mybranch N 次提交先于原点。为什么?

2023-11-21

我刚刚观察到一些奇怪的事情git pull,我不明白。

星期五,我在当地的一家分公司工作。我们就这样称呼它吧mybranch。在离开办公室之前,我将其推送到了 origin(这是我的 github 存储库):git push origin mybranch.

昨天在家,我pull将 mybranch 编辑到我的笔记本电脑上,做了更多编码,然后将我的更改推送回 github (原始)。

现在我又开始工作了,并尝试将昨天的更改拉到我的工作机器上(周末我没有更改工作地点的本地存储库中的任何内容):

git pull origin mybranch

这导致了快进合并,这很好。然后我做了一个git status,它说:

# On branch mybranch
# Your branch is ahead of 'origin/mybranch' by 6 commits.
#
nothing to commit (working directory clean)

啊?当我整个周末都没有碰它并且只是从原点拉取时,怎么会提前 6 个提交呢?所以我跑了一个git diff origin/mybranch这些差异正是我刚刚从远程拉取的 6 个更改。

我只能通过运行来“修复”这个问题git fetch origin:

From [email protected]:me/project
af8be00..88b0738  mybranch -> origin/mybranch

显然,我的本地存储库缺少一些参考对象,但怎么可能呢?我的意思是,拉动已经完成了提取,除了那个分支之外我没有处理任何事情,所以git fetch origin and git fetch origin mybranch应该有相同的结果吗?

我应该总是使用git pull origin代替git pull origin branchname?

我很困惑。


git pull calls git fetch在将显式获取的头(或者如果没有配置为合并的远程分支)合并到当前分支之前,使用适当的参数。

语法:git fetch <repository> <ref> where <ref>只是一个没有冒号的分支名称,是一个“一次性”提取,它不会对指定远程的所有跟踪分支进行标准提取,而是仅将命名分支提取到FETCH_HEAD.

Update:对于 1.8.4 以来的 Git 版本,如果有一个远程跟踪分支跟踪您要求获取的引用,那么该跟踪分支现在将通过以下方式更新:fetch。此更改是专门为了避免先前行为造成的混乱而进行的。

当你表演时git pull <repository> <ref>, FETCH_HEAD如上更新,然后合并到您的签出中HEAD但远程存储库的标准跟踪分支都不会更新(Git looks就像您领先于远程分支一样,而实际上您是最新的。

我个人总是这样做git fetch其次是git merge <remote>/<branch>因为我在合并之前会看到有关强制更新的任何警告,并且我可以预览要合并的内容。如果我使用git pull比我多一点,我会做一个简单的git pull大多数时候没有参数,依赖于branch.<branch>.remote and branch.<branch>.merge“做正确的事”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

'git pull origin mybranch' 使本地 mybranch N 次提交先于原点。为什么? 的相关文章

随机推荐

  • 加速 R 中 sapply 调用中使用的函数

    我有两个向量e and g 我想知道中的每个元素e中元素的百分比g那些更小 在 R 中实现这一点的一种方法是 set seed 21 e lt rnorm 1e4 g lt rnorm 1e4 mf lt function p v 100
  • p4命令相当于什么 svn status [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Perforce 树中查找未跟踪的文件 svn状态的模拟 我想知道什么 p4 命令可以显示哪些文件已更改 哪些文件未签入等 如果您正确使用 perforce p4 open 就是您要查找的内容
  • 名称的正则表达式

    刚刚开始探索正则表达式的 奇迹 作为一个从反复试验中学习的人 我真的很挣扎 因为我的试验引发了不成比例的错误 我的实验是在 PHP 中使用 ereg 进行的 反正 我分别处理名字和姓氏 但现在使用相同的正则表达式 到目前为止我有 A Z a
  • 升级 @types/angular 后出现“错误 TS2694:命名空间 'Angular' 没有导出成员 'xxx'”

    将 Angular 和 types Angular 版本升级到版本 1 6 x 后 我有很多 TS2694 错误 error TS2694 Namespace angular has no exported member material
  • 无法实例化活动 ComponentInfo 无法实例化类

    提前感谢所有关注这个问题的人 特别是那些尝试回答的人 这个网站对我帮助很大 我目前在 Android 4 2 2 应用程序中遇到以下错误 下面是日志猫 09 09 01 14 27 008 D dalvikvm 9008 newInstan
  • Xcode 编辑器中不再有快速帮助

    快速帮助在我的 Xcode 5 OS X 10 8 5 上为 5 0 2 中消失了 而不是应该弹出的小弹出窗口Opt Click快捷方式所显示的只是箭头图像 自从Xcode 5升级之后就这样了 有什么想法如何修复它 FWIW 事实上 文档集
  • Atom:使用 Rome 的 RSS 链接

    It is 受到推崇的添加到 RSS 2 0 我想知道是否有任何罗马模块可以添加此标签 就像他们为内容 媒体开发的那样 etc 博客文章将 Atom 链接添加到由 ROME 生成的 RSS 提要准确回答了这个问题 没有对 RSS 提要中的
  • 为什么模板函数仅基于返回类型在 C++ 上工作?

    据我所知 重载函数必须包含不同的参数 类型或计数 所以我认为模板函数不应该仅仅基于返回类型 但是下面的代码适用于GCC 6 3 0 include
  • 现在转换 API 已停止,有没有办法在 appengine/python 中将 PDF 文件转换为图像?

    现在既然谷歌转化API已停产 有没有办法将 PDF 文件转换为图像in GAE 特别是蟒蛇 好像有人有已经请求了这是 Google 发出的 但尚未采取任何行动 几年前共识这是不可能的吗 有什么新的东西可以帮助我吗 如果您阅读链接到的问题报告
  • 获取cout的精度

    我可以设置精度cout输出使用 cout precision precision value 我怎么能够get精度值 用于cout已经 我在中找不到任何其他相关功能cout 描述 我面临的相关问题是如何仅更改代码某些部分的 cout 精度
  • fabsf 是 C++11 中 std 命名空间的一部分吗?

    这一页https en cppreference com w cpp numeric math fabs提到std fabsf自 C 11 起可用 然而 当我使用 G 6 3 0 编译最简单的程序时 std fabsf 它说fabsf不是以
  • 如何播放长音频剪辑?

    我编写了一个简单的类来在简单的游戏中播放音频文件 它对于枪声或爆炸等小声音效果很好 但当我尝试将它用于背景音乐时 我收到此错误 无法分配剪辑数据 请求的缓冲区太大 我假设这意味着文件太大 但我该如何解决这个问题 来源 import java
  • 从 WSL 运行 Express 服务器(不支持 UNC 路径)

    我正在尝试从 VS Code 中的 WSL 终端运行 Express 服务器 但是 每当我运行命令时npm run dev我收到以下错误 wsl Ubuntu home simao legalize backend CMD EXE was
  • 具有其他项目依赖项的 Eclipse 插件项目

    我有一个 Eclipse 插件项目 它依赖于我的 Eclipse 工作区中的其他项目 在 Java Build Path gt Projects 选项卡下添加项目依赖项 并在 Order and Export 中选择项目后 我收到 java
  • Windows Phone 8.1 中 ListView 中行的交替颜色

    我创建了一个 Windows Phone 8 1 运行时应用程序 我正在使用ListView控件 我想交替每个背景行的颜色 搜索后我发现了这个链接以前的答案 但这会导致标记错误 一方面 没有 AlternationCount 属性 我假设这
  • python 无法设置内置/扩展类型“object”的属性

    Python 似乎不允许您将属性分配给 对象 的内部最高级别 object lst lambda o list o Or func lambda o list o setattr object lst func 所有这些都会生成错误消息 背
  • 将鼠标悬停在 Chrome 开发工具中的变量上不显示当前值?

    将调试器放入 js 文件后 将鼠标悬停在 Chrome 开发工具中的变量上时 不会显示该变量的当前值 我使用的是 Chrome 版本 79 0 3945 88 官方版本 64 位 正如 wOxxOm 和 adam0101 正确指出的那样 这
  • 重置累计金额?

    我有以下数据集 表 stk S Date Qty OOS Out of Stock 1 true 0 false 01 01 2013 0 1 02 01 2013 0 1 03 01 2013 0 1 04 01 2013 5 0 05
  • 分割数据表

    我有一个 data table 我想将其分成两个 我这样做如下 dt lt data table a c 1 2 3 3 b c 1 1 2 2 sdt lt split dt dt b 2 但如果我下一步想做这样的事情 sdt 1 c N
  • 'git pull origin mybranch' 使本地 mybranch N 次提交先于原点。为什么?

    我刚刚观察到一些奇怪的事情git pull 我不明白 星期五 我在当地的一家分公司工作 我们就这样称呼它吧mybranch 在离开办公室之前 我将其推送到了 origin 这是我的 github 存储库 git push origin my