我对 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来拉取新分支:
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
所以我的问题是:
- 为什么MBP有一个分支
origin/HEAD -> origin/master
,但Ubuntu系统没有?那个分支是什么意思? git pull
命令是否会自动拉取所有新的远程分支?我原本以为我需要告诉它要拉取哪些新分支。正如你所看到的,它在执行git pull
命令时拉取了远程的organizations
分支。
git remote set-head origin -a
命令来创建/更新 origin/HEAD。 - Jan Krügergit remote set-head
的文档有助于理解origin/HEAD
的目的。 - millerdev