我有一个小型 PHP 库,我编写它来支持各种 Web 项目。这些项目都在 git 中,库是每个 repos 的子模块。Web 项目使用 git push 部署,部署脚本需要访问库子模块 repo 以更新库。
有时对于任何给定的项目,库都会有自己的分支,直到我将这些更改合并回主分支。
我已经为该库设置了一个裸远程仓库,并且能够将库子模块推送到远程仓库。这很好,我可以在远程仓库中看到这些提交。但是,当我尝试部署时,找不到这些提交。事实上,如果我自己克隆远程仓库,我找不到那些提交。
例如,远程仓库如下所示:-
git log --graph --oneline --date-order
* 9c9b880 (BRANCHA)
* e88ee92
* 07260c9
* 40b0963
* 35b6533 (tag: dev/0.0.2, master) Merge branch 'refs/heads/development'
|\
| * ba3c1bd (HEAD, development)
| * eefa611
| * 1b87828 Merge branch 'refs/heads/BRANCHB' into development
| |\
| | * 9078c1c (BRANCHB)
| |/
| * 834e715
| * a000cd7
|/
* 5985fc9 Initial commit
但是,如果我按如下方式克隆远程仓库:-
git clone -b BRANCHA http://pathto/repo.git
克隆的仓库看起来像:-
git log --graph --oneline --date-order
* 07260c9 (HEAD, origin/BRANCHA, BRANCHA)
* 40b0963
* 35b6533 (tag: dev/0.0.2, origin/master) Merge branch 'refs/heads/development
|\
| * ba3c1bd (origin/development, origin/HEAD)
| * eefa611
| * 1b87828 Merge branch 'refs/heads/BRANCHB' into development
| |\
| | * 9078c1c (origin/BRANCHB)
| |/
| * 834e715
| * a000cd7
|/
* 5985fc9
如果我这样做git pull
了Already up-to-date.
为什么当我克隆时,我最终会提交 07260c9,而不是提交 9c9b880,为什么不拉下那些后来的提交?我是否遗漏了有关远程裸仓库应该如何工作的信息,或者我应该以不同的方式推送到裸仓库?