为什么我不能在 BitBucket 存储库中提取新代码?说 "Already up-to-date" 但我没有所有推送的代码

Why I can't pull the new code on the BitBucket repository? Says "Already up-to-date" but I have not all the pushed code

我不是很喜欢 GIT 我有以下问题我无法理解。

我正在与另一个人一起使用 BitBucket 存储库。

我试图获取我同事推送的新代码,这样做:

git pull

但它对我说:

$ git pull
Already up-to-date.

但是在 BitBucket 存储库上(它在远程 master 分支,我可以在 BitBucket 网站上看到它)有一些我本地系统上没有的代码.

所以我尝试通过以下方式获取所有远程分支的列表:

$ git branch -r
  origin/GLIS-Trigger-TAG
  origin/HEAD -> origin/master
  origin/master

那么到底是什么意思呢?我指的是origin/HEAD?这是什么意思? origin/HEAD

到底是什么

我必须打开 origin/master 分支才能获取此代码吗?

可能是什么问题以及如何解决?

在您的终端中,只需输入

git branch

这将列出所有分支并指出您当前所在的分支。

检查是否是master分支。如果没有,那么您应该移至主分支以获取更改。

git checkout master

然后,

git pull

但是另一方面,你想要从master分支到当前分支的变化,那么就没有必要移动到master,而是使用这个命令将master分支的变化获取到你当前的分支

git pull origin master

您问了几个问题,这些问题暗示了一些额外的困惑。所以:

So I tried to obtain the list of all the remote branches by:

$ git branch -r
  origin/GLIS-Trigger-TAG
  origin/HEAD -> origin/master
  origin/master

So what exactly means? I am pointing to origin/HEAD? What it means? What exactly is origin/HEAD

这意味着您的本地存储库有 "remote branch references" 用于名为 'origin 的远程,并且在该远程上它看到名为 masterGLIS-Trigger-TAG 的分支。遥控器的默认分支是 master (这是 origin/HEAD 条目所说的)。

None of this 告诉你你指的是哪里。 运行 git branch 没有 -r 会列出本地分支机构,如果您在本地分支机构上,那么该分支机构的名称将以 * 开头。你永远不是 "on" 远程分支;如果您 checkout 到远程分支引用,您将处于分离头状态(不在任何分支上),因为本地提交不会推进远程分支引用。

Have I to switch on the origin/master branch to obtain this code?

不,正如我所说,尝试这样做会使您处于分离的 HEAD 状态(这有时很好,但不是您想要的。)

我的理解是,您在远程的 master 分支上看到了变化;因此,您需要切换到 local master 分支 - 因为它很可能设置为跟踪 origin/master。 (这是默认设置,因此您必须故意设置不同的配置。)

git checkout master
git pull

您还可以通过

获取所有 远程引用的更新
git fetch

然后您可以通过多种方式检查任何分支的 "up-to-date" 状态,例如检查分支和 运行

git status

或无需通过

签出分支
git diff branch_name origin/branch_name