如何将远程非裸REPO转换为裸repos,而无需在git中的本地计算机中重新克隆?

如何将远程非裸REPO转换为裸repos,而无需在git中的本地计算机中重新克隆?,git,Git,我有一台远程机器RemoteMachine,它保存另一台机器的克隆,与以下内容无关: git clone MachineWeNotConcern/prj prj 我的本地机器克隆如下: git clone RemoteMachine/prj local_prj 现在,我想让RemoteMachine的回购协议裸露(如何?) git clone --bare MachineWeNotConcern/prj prj 我不想从我的远程机器的裸机上重新克隆,因为它总是需要很多时间 如何实现这一点?

我有一台远程机器RemoteMachine,它保存另一台机器的克隆,与以下内容无关:

git clone MachineWeNotConcern/prj prj
我的本地机器克隆如下:

git clone RemoteMachine/prj local_prj
现在,我想让RemoteMachine的回购协议裸露(如何?)

git clone --bare MachineWeNotConcern/prj prj
我不想从我的远程机器的裸机上重新克隆,因为它总是需要很多时间


如何实现这一点?

您可以使用--bare从项目的远程机器上的本地repo创建一个新的克隆。即:

git clone --bare prj bare_prj
然后删除原始prj。这比再次从原始机器克隆要快

编辑:另一个解决方案:

看起来,您可以通过以下方式将您的回购变成裸回购:

  • 将.git/config文件更改为bare=true而不是bare=false
  • 删除除.git文件以外的prj/*的内容
  • 将.git dir内容移动到prj/中并删除.git dir

至少,这对我来说似乎是可行的,但据我所知,这可能是失败的原因。

您可以使用--bare在项目的远程机器上从本地repo创建一个新的克隆。即:

git clone --bare prj bare_prj
然后删除原始prj。这比再次从原始机器克隆要快

编辑:另一个解决方案:

看起来,您可以通过以下方式将您的回购变成裸回购:

  • 将.git/config文件更改为bare=true而不是bare=false
  • 删除除.git文件以外的prj/*的内容
  • 将.git dir内容移动到prj/中并删除.git dir
至少,这似乎对我有效,但据我所知,这可能是失败的原因