gpt4 book ai didi

Git 分支名为 origin/HEAD -> origin/master

转载 作者:IT王子 更新时间:2023-10-29 00:49:19 31 4
gpt4 key购买 nike

我对 Git 还很陌生,但仍在掌握它的窍门。我最近才开始使用分支机构,遇到了一些问题。

我有两个开发系统,一个 Ubuntu 桌面和一个 MacBookPro。我在 Ubuntu 系统上的一个新的 organizations 分支中做了很多工作,并执行了提交并推送到我的远程仓库。此时,我有这些分支:

tauren@ubuntu:/projects$ git branch
accounting
master
* organizations

tauren@ubuntu:/projects$ git branch -r
origin/accounting
origin/master
origin/organizations
origin/superstar

然后我切换到MBP pull 新分支:

tauren@osx:/projects$ git branch
accounting
* master

tauren@osx:/projects$ git branch -r
origin/HEAD -> origin/master
origin/accounting
origin/master
origin/superstar

tauren@osx:/projects$ git pull
2e20a14..ef35730 accounting -> origin/accounting
271a1a5..7e947ab master -> origin/master
* [new branch] organizations -> origin/organizations

tauren@osx:/projects$ git branch
* accounting
master

tauren@osx:/projects$ git branch -r
origin/HEAD -> origin/master
origin/accounting
origin/master
origin/organizations
origin/superstar

所以我的问题是:

  1. 为什么MBP有分支origin/HEAD -> origin/master,而Ubuntu系统没有?那个分支是什么?
  2. git pull 会自动 pull 所有新的远程分支吗?我以为我必须告诉它要 pull 的新分支的名称。如您所见,它 pull 了命令 git pull 上的远程 organizations 分支。

最佳答案

HEAD 通常指向当前 checkout 的分支。在托管(裸)存储库中,它指定默认分支,即在克隆存储库时 checkout 的分支。所以,origin/HEAD 告诉你默认的 origin 分支。

我不知道为什么它不存在于您的 Ubuntu 系统存储库中。也许您最初是从该存储库中推送您的代码(当时 origin 为空,因此还没有 HEAD)并且从未更新过它。

不管怎样,拥有像 origin/HEAD 这样的东西在实践中并不是特别重要。如果需要,您可以使用 git remote set-head origin -a 来创建/更新 origin/HEAD

回答你的另一个问题:如果你不带参数运行 git pull,它实际上会从远程获取所有内容(git fetch 也是不带参数运行的,所以它只是得到一切)。但是,一切都不会 merge 。仅更新远程跟踪分支(git branch -r 中的内容)。

关于Git 分支名为 origin/HEAD -> origin/master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359099/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com