我不太喜欢GIT,我有以下问题,我无法理解。
我正在使用一个 BitBucket存储库,我正在与另一个人一起工作。
我试图获取我的同事推送的新代码,执行以下操作:
git pull
但它对我说:
$ git pull
Already up-to-date.
但是在 BitBucket 存储库上(它在远程主分支中,我可以在 BitBucket 网站上看到它(有一些我在本地系统上没有的代码。
所以我试图通过以下方式获取所有远程分支的列表:
$ git branch -r
origin/GLIS-Trigger-TAG
origin/HEAD -> origin/master
origin/master
那么究竟是什么意思呢?我指的是原点/头?什么意思?究竟什么是起源/头部
我必须打开源/主分支才能获取此代码吗?
可能是什么问题以及如何解决?
你问了几个问题,这些问题暗示了一点额外的困惑。 所以:
所以我试图通过以下方式获取所有远程分支的列表:
$ git branch -r origin/GLIS-Trigger-TAG origin/HEAD -> origin/master origin/master
那么究竟是什么意思呢?我指的是原点/头?什么意思?究竟什么是起源/头部
这意味着您的本地存储库具有名为'origin
的远程的"远程分支引用",并且在该远程上它会看到名为master
和GLIS-Trigger-TAG
的分支。 远程的默认分支是master
(这是origin/HEAD
条目所说的(。
这些都不能告诉你你指向哪里。 在没有-r
的情况下运行git branch
将列出本地分支,如果您位于本地分支上,则该分支的名称前面将带有*
。 您永远不会"在"远程分支上;如果checkout
到远程分支引用,您将处于分离的头状态(不在任何分支上(,因为本地提交不会推进远程分支引用。
我必须打开源/主分支才能获取此代码吗?
不,正如我所指出的,尝试这样做会让你处于分离的 HEAD 状态(有时很好,但不是你想要的。
我的理解是,您可以在遥控器的master
分支上看到更改; 因此,您需要切换到本地master
分支 - 因为它很可能设置为跟踪origin/master
。 (这是默认的,因此要做到这一点,您必须故意设置不同的配置。
git checkout master
git pull
您还可以通过以下方式获取所有远程引用的更新
git fetch
然后,您将能够通过多种方式检查任何分支的"最新"状态,例如通过签出分支并运行
git status
或者不必通过以下方式签出分支机构
git diff branch_name origin/branch_name
从您的终端,只需键入
git branch
这将列出所有分支并指出您当前所在的分支。
检查它是否是主分支。如果没有,那么您应该移动到主分支以获取更改。
git checkout master
然后
git pull
但另一方面,您希望将更改从 master 更改为当前分支,则无需移动到 master,而是使用此命令将 master 分支中的更改获取到当前分支
git pull origin master