我有一个正在处理的新项目,并且已经为此项目/目录创建了一个git存储库。该项目位于办公室中始终可以运行且可以访问的计算机上。 现在,我想从中创建一个裸仓库,我可以将其用作“服务器”,以通过ssh从/从本机复制到本机。我尝试过
git clone --bare project project.git
它从我的工作目录中创建了一个裸存储库,但是没有为新的裸存储库设置任何远程或分支。但是当我切换到新的仓库时
git remote -v
给我
origin /home/auron/project (fetch)
origin /home/auron/project (push)
基本上,这与我想要的相反。我怎样才能实现自己想要的?
答案 0 :(得分:0)
[{
git clone --bare
]从我的工作目录中创建了一个裸存储库,但是没有设置用于[使原始Git使用]新的裸存储库的远程控制或分支。
那很正常。
进行克隆时,您的Git会记住从 克隆的位置。它根本不会修改 source ;它会创建一个新的存储库,就像您运行以下命令序列一样:
mkdir new-repo.git
cd new-repo.git
git init <flags>
git remote add origin <url>
...
(其中<flags>
代表--bare
标志,<url>
代表您要克隆的URL)。
如果您想影响某些现有存储库:
cd existing-repository
git remote add <name> <url>
其中<name>
是您要使用的名称,例如origin
,而<url>
是您要与该名称关联的URL。
请注意,这仅添加了名称,而没有先联系给定URL来查看给定URL是否存在Git。因此,如果您在此处输入错误,则下一个git fetch
将在尝试使用URL时失败。
还请注意,当您进行初始的裸克隆时,如果要克隆的源具有多个分支,则可能要使用--mirror
选项。之后,您可能会或可能不想在裸克隆中运行git remote remove origin
,以从克隆中删除其来源。 (在正常操作中,记忆是无害的,但是(a)如果您使用--mirror
,并且(b)有人试图在裸克隆中运行git fetch
,这可能很糟糕)