我如何重命名使用gitolite创build的Git仓库?

我使用gitolite创build了一个Git仓库。 现在我想重命名该存储库。

我怎样才能做到这一点?

在gitolite的自述是说,我不应该直接在服务器上工作。 但是我想我在这种情况下需要在服务器上做一些工作,对吧?

正如gitolite basic-admin手册所述 :

重命名回购

这是相似的; 在gitolite没有这样的代码。 你所做的是:

  • login到服务器, cd $REPO_BASE (默认: cd $REPO_BASE cd ~/repositories )和

    mv old-name.git new-name.git

  • 回到你的gitolite-admin克隆上,编辑conf/gitolite.conf并用new-namereplace所有old-name new-name 。 然后像往常一样添加,提交和推送。

这两个步骤的顺序是重要的; 不要扭转他们:-)

gitolite3上需要第三步:

  • 编辑回购库中的文件gl-conf并将存储库名称更改为新名称

当然,每个用户都应该更新他的克隆configuration,以指向新的回购商名称。

我对gitolite没有特别的了解,但是一种可能的方法是用正确的名字创build一个全新的版本库,把你的代码放到那个版本中,然后删除旧版本。

使用Greg Hewgill作为一个想法,你可能可以在configuration文件中重新命名仓库。 你可能想先尝试一个虚拟库。 我的怀疑是旧的名字将被删除,新的将被创build,你需要在本地更新你的来源,然后推。

一个干净的方法是创build一个空的新的存储库,然后执行以下操作:

假设旧的是旧的,新的(空的)是新的:

 # mkdir /tmp/1 # cd /tmp/1 # git clone OLD_REPO old # git clone NEW_REPO new # cd new # git pull ../old # git push origin master 

或者你可以直接使用远程回购OLD:

 # mkdir /tmp/1 # cd /tmp/1 # git clone NEW_REPO new # cd new # git pull OLD_REPO # git push origin master 

这将保持所有的历史,并让gitolite处理其内部。 此外,你将不得不更新gitolitepipe理,但没有限制的顺序。

这也可以远程工作,没有问题。

尽pipe删除旧版本库应该按照gitolite的说明完成(本地)。