我刚刚完成了Google搜索结果的浏览,其中包含了所有关于git不能克隆空存储库的电子邮件的抱怨。一些善良的灵魂甚至提交了补丁。在git升级之前,最简单、最简单的克隆空裸git存储库的方法是什么?
理想的解决方案将支持-o选项,为远程回购提供一个不同于origin的名称,并且它可以作为一个简单的shell脚本来实现,例如git-clone-empty-repo。
(我为什么要这么做:我已经在我们的NetApp文件处理程序上设置了一个空的、空的git,在那里它将被备份,但是我想在我的本地硬盘上使用一个克隆,然后来回推拉。和我一起工作的其他人也会这么做。我创造了很多新的git回购,我无法克隆一个空的回购令我疯狂。)
编辑:VonC的线程表明
$ git-init
$ git-remote add origin server:/pub/git/test.git等于在回购为空时复制远程回购。这并不完全是我想要的,因为我总是在git克隆中使用-o选项;我根据它在哪台机器上或其他一些令人难忘的标准来命名远程回购。(我有太多的回复,如果它们都叫origin的话,就无法保持原样。)
编辑:下面的答案将被标记为接受:-)
在小路上克隆一个空的、光秃秃的回购品,
~/git/onefile保存一个非裸露的git,包含一个无害的文件,比如.gitignore。(或者,动态创建这样的回购。)(cd ~/git/onefile; git push路径master)git clone -o名称路径换句话说,不要试图克隆空的回购,而是在创建它之后,将包含一个无害文件的简单回购推送到它。那么它就不再是空的,可以克隆了。
如果有人没有超过我,我会发布一个shell脚本。
发布于 2009-05-21 23:45:05
可能只是有一个包含最少文件数的git:
第一种:带有明显忽略模式的.gitignore。
然后克隆那个“几乎是空的”存储库。
请注意,这样一个“几乎为空”的存储库(“几乎”,因为它在.git目录旁边仍然有一个最小的工作目录)可以通过'git clone --bare‘(作为图解),使它成为一个真正的裸回购(但不是一个“空的”)。
这样你就可以光着手回购了:
您在这条线中对“相反的方法”有了一个很好的总结(我在这里保留它以供参考)。
$ git-init
$ git-remote add origin server:/pub/git/test.git对于一个新的项目(还没有代码),我想做一个空的,赤裸的 远程公共服务器上的存储库(没有工作副本)作为启动 点,在本地克隆它,并逐步在本地创建内容 把它推到远程公共服务器上。
Junio C. Hamano对此作了答复:
您为发布准备了一个空的裸存储库,这是非常好的。 下一步是你在别处准备你的内容。那将是你的私人工作场所,也就是你通常工作的地方)。 您将从您的私人工作地点推入到发布存储库中。 您的工作地点是初始提交应该来自的地方,因为您是启动项目的人。 注意,私人工作场所不必是空工作场所的克隆体。那实际上是倒过来的。您的工作从您的私人工作地点开始到发布工作。 您甚至可以克隆您的私有存储库来发布一个存储库,以便明确谁是主存储库,谁是副本(如果您想要的话),但是由于您已经拥有了用于发布的裸存储库,所以只需将其插入其中即可。
https://stackoverflow.com/questions/895819
复制相似问题