为什么我必须在 Git 中推送刚刚从源拉取的更改?

2024-01-12

我的本地计算机上有一个从远程服务器克隆的 Git 存储库。我克隆的 Git 存储库是一个裸存储库。

仍然让我困惑的一件事是,当原产地发生变化时,我确实git pull origin master更新我的本地存储库,git status然后告诉我,我比原点提前了 X 次提交,其中 X 是我刚刚拉取的提交数量。

尽管提交日志已经相同,但还是如此。

所以我总是做一个git push origin master之后,但我只是想知道是否有人可以解释为什么这是必要的,以及我是否可能这样做不正确。

在我看来,如果我只是从源中提取更改,那么两个存储库应该是相同的。那么为什么我会被告知我领先于原点呢?这是否与它是一个裸存储库有关?

为了清楚起见,以下是更详细的情况:

我在远程服务器上有一个裸露的 git 存储库(集线器)。该存储库有两个克隆:我的本地计算机上的“dev”和与原始服务器位于同一服务器上的“staging”。

当我对开发进行更改时,我然后git push origin master他们到裸露的“hub”仓库。然后我登录到远程服务器,cd到“staging”仓库并执行git pull origin master从“hub”更新“staging”。

完成此操作后,如果我使用以下命令比较集线器和暂存提交日志git log --pretty=oneline我可以看到它们是相同的。

但是,如果我这样做git status在“staging”目录中我得到以下内容:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

所以我通常会这样做git push origin master从那里,我被告知:

$ git push origin master
Everything up-to-date

一切正常,但我脑子里一直有一个挥之不去的问题,我在设置存储库时是否没有犯错误,或者这是否正常......


根据man git-pull http://www.kernel.org/pub/software/scm/git/docs/git-pull.html:

将远程分支合并到当前分支next:

$ git pull origin next

这会留下一个副本next暂时在FETCH_HEAD,但不更新任何远程跟踪分支。使用远程跟踪分支,可以通过调用 fetch 和 merge 来完成相同的操作:

$ git fetch origin
$ git merge origin/next

重点是我的。

基本上,Git 是在告诉你,你更新的 master 已经领先了origin/master,这是一个远程跟踪分支对于主人 http://book.git-scm.com/4_tracking_branches.html。由于此跟踪分支未被更新git pull origin master(如手册页所示),您are技术上领先于它。呼唤git fetch origin更新您的远程跟踪分支,然后您可以手动合并该跟踪分支(如第二个联机帮助页示例中所示)。

AFAIK,如果您没有指定分支名称git pull (e.g. git pull origin),它将读取.git/config它应该获取什么以及远程跟踪分支will被更新。

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

为什么我必须在 Git 中推送刚刚从源拉取的更改? 的相关文章

  • 如何仅隐藏一些未提交的更改?

    我正在对 Git 存储库进行重大更改 并意识到某些更改需要向后移植到错误修复分支 我不想签入我的所有更改master因为它们还没有经过充分的测试和准备 但我确实想提取其中一些更改并将它们提交到错误修复分支 然后按原样返回到 master 我
  • 如何使用和理解wso2 git仓库?

    我刚刚开始对wso2感兴趣 我正在寻找移动设备管理解决方案 所以我测试了 wso2 EMM 但我发现了一些限制 我想知道是否可以自己实现 我的问题是我完全迷失在 wso2 git 存储库中 有没有我错过的指导书或逻辑 如果有人帮助我解决这个
  • git 忽略行结尾

    我知道已经有人问过类似的问题 但我仍然无法让它发挥作用 我的项目在使用不同操作系统的人之间共享 而我使用的是 OSX 另外 并不是每个人都使用 git 有时我最终不得不提交其他人的更改 有时 git 会突然说有待处理的更改 查看文件 它们看
  • 将各种提交合并为一而不合并

    是否可以加入各种提交 这是我的情况 我的应用程序在 OSX 10 6 和 10 7 中运行 我已经修复了 10 6 的一些内容 然后提交了 更改为 10 7 并再次修复修复程序 以便它们兼容 然后再次提交 然后返回到 10 6 并再次检查并
  • git:检查标签,修改某些内容,然后再次标记它

    我觉得我应该知道这一点 但我很困惑 我在 github 上分叉了一个存储库 我需要的是签出一个标签 称为 v1 0 5 修改文件上的语句 使用名为 1 0 5 的新标签 不带 v 重新标记该状态 然后执行对 master 进行同样的更改 让
  • 将更改从通用差异导入 git 存储库

    我正在尝试将更改从一个源代码控制系统 专有且复杂 导入到 git 存储库中 我目前正在通过运行一个脚本来执行此操作 该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库 但由于各种原因 这已变得不可行 对于每个修订版 我都可以获得描
  • 使用 git filter-branch 然后 git push --force 清除大文件后,远程(Gitlab)上的 Git 存储库大小仍然很大

    我已按照 Gitlab 文档中有关 使用 Git 减少存储库大小 的说明进行操作 通过从历史记录中清除大文件 https docs gitlab com ee user project repository reducing the rep
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • Git 会删除空文件夹吗? [复制]

    这个问题在这里已经有答案了 我已提交一个项目并将其推送到我的 GitHub 帐户 该项目包含以下部分文件结构 server conf some files java lib java 和 lib 文件夹为空 从 GitHub 下载我的项目时
  • 目标路径已存在且不是空目录

    我克隆了一个 git 存储库 但不小心弄乱了 所以我重新克隆并显示消息 目标路径已存在且不是空目录 我尝试过删除 Mac 中带有目标路径名称的文件夹 但没有成功 我对编码非常陌生 因此我们将不胜感激 对于根文件夹 以及任何其他文件夹 对于那
  • github Diff 截断错误

    在 github 中发出拉取请求并审查更改时 我们收到了 Diff Truncated 错误 如下所示 任何人都可以帮助解决这个问题 拉取请求可能会触发以下提到的限制之一GitHub 支持 https stackoverflow com a
  • 合并多个 git 存储库

    假设我有一个看起来像这样的设置 phd code phd figures phd thesis 由于历史原因 这些都有自己的 git 存储库 但我想将它们合并为一个 以稍微简化事情 例如 现在我可能会进行两组更改 并且必须执行类似的操作 c
  • 仅将单个文件放入 git 子模块/存储库中

    我在 git 源代码存储库中有一个特定文件 其中包含生产设置 密码 我想限制此文件 以便只有制作团队的成员才能看到它 但是 我想控制它的变化 我考虑过在 git 中使用子模块 然后限制对新存储库的访问 然而 git 似乎需要子模块的整个子目
  • 如何设置“阅读文档”以使 Sphinx autodoc 选项发挥作用?

    我的项目不是使用 autodoc 构建的 我遇到了关于我的项目未在 autodoc 中构建的常见问题 https read the docs readthedocs org en latest faq html my project isn
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • 如何将更改提交到另一个预先存在的分支

    我刚刚对一个分支进行了更改 如何将更改提交到另一个分支 我正在尝试使用 git checkout the commmit to the changed branch b the other branch 但是 我认为这不是正确的做法 因为在
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • 如何与其他用户共享 bitbucket 存储库?

    我正在使用 Bit 存储桶 并且我想与一位朋友分享我的存储库 我用的是免费的个人账户 似乎有一个选项可以在位桶中创建团队 但它说它将把我的帐户从个人帐户转换为团队帐户 我不要那个 我如何授予其他用户访问此存储库的权限 有一个共享链接选项 如
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont

随机推荐

  • pydicom“数据集”对象没有属性“TransferSyntaxUID”

    我正在使用 pydicom 1 0 0a1 从下载here https github com pydicom pydicom 当我运行以下代码时 ds pydicom read file DR abnormal abc dcm force
  • 一个季度的周数

    我试图根据日期获取给定季度的周数 我目前有这个公式 1 WEEKNUM EDATE Y4 1 WEEKNUM DATE YEAR EDATE Y4 1 LOOKUP MONTH EDATE Y4 1 1 4 7 10 1 But for J
  • 没有名为 urllib3 的模块

    我编写了一个调用 API 的脚本 并于上周成功运行了它 这周 它不会运行 我收到以下错误消息 Traceback most recent call last File user audit py line 2 in
  • 对基于 REST 的 API 到底是什么感到困惑

    我试图了解基于 REST 的 API 到底是什么 据我了解 这只是在 API 中编写函数的约定 所有函数都应该是 GET POST DELETE PUT 形式吗 因此 例如 REST API 中的函数可以是 public string ge
  • 将虚拟地址转换为物理地址

    The following page table is for a system with 16 bit virtual and physical addresses and with 4 096 byte pages The refere
  • endUpdates 后 UITableView 部分页脚视图位置

    在 ios8 上 我使用核心数据表视图控制器 删除行后 我的部分页脚视图突然一直下降到底部UITableView 当我滚动表格视图时 页脚视图返回到其位置 如何解决这个问题以及为什么会发生这种情况 这是代码以防万一 void control
  • Spark 读取镶木地板文件时出现问题

    我有 2 个镶木地板零件文件part 00043 0bfd7e28 6469 4849 8692 e625c25485e2 c000 snappy parquet 是 2017 年 11 月 14 日运行的部分文件 和part 00199
  • Cube、Rollup 和 GroupBy 运算符之间有什么区别?

    我找不到有关差异的任何详细文档 我确实注意到了差异 因为交换时cube and groupBy函数调用 我得到不同的结果 我注意到对于结果使用cube 我在以前使用的表达式上得到了很多空值groupBy 它们的工作方式不同 groupBy简
  • 如何控制鼠标光标? [复制]

    这个问题在这里已经有答案了 我的表单只有几个按钮 我想知道现在光标下有什么按钮 附 也许它是重复的 但我找不到这个问题的答案 看一下GetChildAtPoint http msdn microsoft com en us library
  • 自定义 QStyledItemDelegate 以绘制多种颜色的文本

    我想在一个中显示两列QTableWidget显示两次刺痛之间的差异 通过之前的一些编辑距离算法计算 这些部分存储在每个部分的数据中QTableWidgetItem as a QStringList 第一部分必须显示为黑色 接下来的部分必须显
  • 如何通过poi为word中的不同部分设置页码

    我的文档由三部分组成 封面 内容和正文 我想为每个部分设置不同的页码 封面不需要页码 内容页码采用罗马数字 正文页码采用希腊数字 用POI可以实现吗 Apache poi到目前为止 只有 abel 创建了三种类型的页眉 页脚 页眉页脚类型
  • Java FileReader 找不到文件

    我决定开始一个新问题 以便它可以严格关注 FileReader 错误 这是一种接受文件名和新文件所需的输出名称的方法 假设输入的文件名是 hello txt 该方法使其类似于 home User hello txt 它作为参数进入 File
  • 获取配置文件的跨平台路径(C/C++)

    我想将应用程序的设置存储在配置文件中 在 Linux 和 Mac 下 这 可能 是 home user config app conf 而在 Windows 下 它 可能 是 C Documents and Settings usernam
  • 如何获取Windows域名?

    我如何获取机器的域名 如果机器实际上已加入域 当然 如果机器没有加入域 该函数应该返回 null or 一个空字符串 或者 机器的名称 或 Notes the NetGetJoinInformation http msdn microsof
  • 将地址清理程序与 MSVC 结合使用时应用程序崩溃

    我正在尝试将地址清理程序与 MSVC 一起使用 Visual Studio 安装程序显示我有 Visual Studio Community 2019 版本 16 9 0 我有最基本的C 程序 int main return 0 CMake
  • 我应该如何从串行端口数据触发的 C# 事件更新我的 UI?

    我是一名技术级员工 帮助在制造测试环境中进行一些编码 具体问题是在 C 中处理事件 不仅仅是 Button click 特别是如果我有一个通过串行端口传入的数据流 并且必须根据通过串行端口传入的内容实时更新 UI 例如 如果我有两种方法最终
  • WordPress 主题上传错误 PCLZIP_ERR_BAD_FORMAT

    我对 php 和 WordPress 都很陌生 但是由于某些需要 我只能使用 WordPress 因此 首先我阅读了一个教程并创建了自己的 WordPress 主题 当我尝试上传我的主题时 出现以下错误 The package could
  • 这段Python代码(谷歌应用引擎)中产生“405 Method Not allowed”的原因是什么?

    我是一个 python 新手 我正在尝试构建一个应用程序 逐步复制我之前在课堂上教授的内容 但我收到了 405 Method Not allowed 错误 Here what the professor did 这是我所做的 有人能指出下面
  • C中静态全局变量和非静态全局变量的区别[重复]

    这个问题在这里已经有答案了 静态全局变量 和 静态全局变量 有什么区别 C 中的 非静态全局变量 请用一些例子解释它们有何不同 因为 全局静态变量和简单全局变量在整个程序中都保持活动状态 并且可以在任何块中使用 我很困惑如何区分它们 有人可
  • 为什么我必须在 Git 中推送刚刚从源拉取的更改?

    我的本地计算机上有一个从远程服务器克隆的 Git 存储库 我克隆的 Git 存储库是一个裸存储库 仍然让我困惑的一件事是 当原产地发生变化时 我确实git pull origin master更新我的本地存储库 git status然后告诉