如何通过现有项目在localhost上设置裸git存储库?

时间:2018-07-29 12:30:56

标签: git localhost repository

我有一个正在处理的新项目,并且已经为此项目/目录创建了一个git存储库。该项目位于办公室中始终可以运行且可以访问的计算机上。 现在,我想从中创建一个裸仓库,我可以将其用作“服务器”,以通过ssh从/从本机复制到本机。我尝试过

git clone --bare project project.git

它从我的工作目录中创建了一个裸存储库,但是没有为新的裸存储库设置任何远程或分支。但是当我切换到新的仓库时

git remote -v

给我

origin /home/auron/project (fetch)
origin /home/auron/project (push)

基本上,这与我想要的相反。我怎样才能实现自己想要的?

1 个答案:

答案 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 ,这可能很糟糕)