Pro Git book表示我需要先在现有目录中创建repo,然后将其克隆为“bare”。我已经阅读了this article关于为什么使用'裸'存储库的问题,似乎我需要将其视为'起源',它应该用于拉动和推送。我不明白的是,为什么我需要先创建regural存储库然后将其克隆为'bare'?为什么我不能创建'bare'repo intiatilly然后从那里的目录提交文件?
如果我删除创建'bare'repo的目录怎么办?它会以某种方式影响'裸'存储库吗?
答案 0 :(得分:2)
您可以轻松地创建一个裸存储库:
$ git init --bare <directory>
如果你克隆它,你可以删除克隆后的原始存储库。克隆的存储库中的origin
远程控制器将无法访问,因此您可能希望之后将其删除。
不管遥控器在裸存储库中是非常有用的......
答案 1 :(得分:2)
这可能是对起始情况的轻微误解。
您可以使用git init --bare
创建一个与其他任何人一样的裸仓库。这将创建没有任何内容的存储库。
但是,如果没有要与之通信的克隆,您无法将文件存入其中,因为裸存储库没有工作目录。
如果您想将现有文件放入裸仓库,您有两种方法可以解决这个问题:
在变体1中省略了原始非裸机的遥控器添加,您可以看到变体2有更多步骤。
答案 2 :(得分:2)
为什么我不能创建'bare'repo intiatilly然后从中提交文件 目录那里?
因为无法将文件提交到裸仓库。
通常,如果您创建存储库(使用git init
或git clone
),git将创建存储库结构(.git subdir)和工作树,这是当前提交的目录文件已签出。
一个简单的回购只是一个没有相关工作树的回购。因此没有办法将文件提交到其中,因为没有工作树可以将文件放入提交中。