我刚刚浏览完谷歌搜索结果,其中包含所有关于 git 无法克隆空存储库是多么愚蠢的电子邮件咆哮。某个善良的灵魂甚至提交了补丁。在 git 升级之前,克隆一个空的裸git 存储库的最简单、最直接的方法是什么?
理想的解决方案将支持为-o
远程 repo 指定除 之外的名称的选项origin
,并且可以作为简单的 shell 脚本实现,例如git-clone-empty-repo
.
(我为什么要这样做:我已经在我们的 NetApp 文件管理器上设置了一个裸露的空 git 存储库,它将被备份,但我想在我的本地硬盘驱动器上使用一个克隆并来回推拉. 与我一起工作的其他人也会这样做。我创建了很多新的 git repos,但我无法克隆一个空的 repo,这让我发疯了。)
编辑:VonC 的线程表明
$ git-init
$ git-remote add origin server:/pub/git/test.git
相当于repo为空时克隆远程repo。这不是我想要的,因为我总是使用-o
git clone 的选项;我根据远程仓库所在的机器或其他一些令人难忘的标准来命名远程仓库。(如果它们都被调用的话,我有太多的存储库无法保持它们的正确性origin
。)
编辑:以下答案将被标记为接受:-)
要在path克隆一个空的、裸仓库,
- 保存在
~/git/onefile
包含一个无害文件的非裸 git 存储库中,例如.gitignore
. (或者,动态创建这样的存储库。) (cd ~/git/onefile; git push
小路master)
git clone -o
名称 路径
换句话说,不要试图克隆空的 repo,而是在创建它之后,向它推送一个包含一个无害文件的简单 repo。然后它不再是空的,可以克隆了。
如果有人没有打败我,我会发布一个 shell 脚本。