拉取请求后,"Your branch is ahead of 'origin/master' by N commits"

After Pull Request, "Your branch is ahead of 'origin/master' by N commits"

目标

我希望我的本地 masterorigin/master 匹配,因为它们具有相同的代码。

背景

我不是 git 的新手,但我是 Pull Requests 的新手并且在开发团队中工作。

我们有 2 个主要分支:masterpre。我们使用 Jira 创建与功能或事件关联的新分支。

我们的git流程如下:

  1. pre 打开一个分支(使用 Jira)
  2. 代码进入分支
  3. 创建合并请求以合并回 pre(已审核)
  4. 再次 PR 合并到 master(已审核)。我们正在 pre 中实施一些测试阶段,但现在是一个空步骤。因此,一旦您的新 PR 获得批准,就会从 new-branch 变为 pre,并且在没有进一步审查的情况下从 pre 变为 master

我昨天做了什么

所以,我git checkout feature-branch在我的本地环境中,做了一些修改,git commitgit push origin feature-branch。该代码已经在 Github.

的远程仓库中

我去了 Github 并创建了一个 PR(来自 Github 网站),分配了一个审阅者。审阅者批准了它,所以我转到 Github 并单击“合并”按钮。由于上述原因,重复了两次 branch >> pre >> master

今天一期

我想从事另一项工作。当我 git pull origin master 时,从我本地环境中的 master 分支,我收到这条消息:

From https://github.com/<user>/<reponame>
 * branch            master     -> FETCH_HEAD
Already up-to-date.

并且git status输出这个:

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

我第一次拉取时,修改是从 origin/master 中拉取的,但现在出现此消息。

这个repo最近几天只有我一个人在用,所以代码完全一样。

问题

我没有在本地合并代码,从 feature-branchpre 再到 master。我应该吗?

这是怎么回事,我该如何解决?

PS: 我读了很多答案,但大多数 Q/A 都与在本地分支上工作有关,而不是将代码推送到远程仓库,它会抛出相同的消息。

Git fetch 是更新 refs 需要做的事情。

来自 git fetch 文档:

Fetch branches and/or tags (collectively, "refs") from one or more other repositories, along with the objects necessary to complete their histories. Remote-tracking branches are updated (see the description of below for ways to control this behavior).

基本上这意味着 git 将从 remote 存储库中收集有关提交的所有元数据并将其保存在您的本地存储库中,而不修改任何文件。