87

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

我怎样才能做到这一点?

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

4

4 回答 4

138

gitolite basic-admin 手册中所述:

重命名仓库

这是相似的;没有代码可以做到这一点gitolite。你要做的是:

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

    mv old-name.git new-name.git

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

这两个步骤的顺序很重要;不要颠倒它们:-)

gitolite3 需要第三步:

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

当然,每个用户都应该更新他的克隆配置以指向新的 repo 名称。

于 2011-03-02T08:03:55.270 回答
9

我对 gitolite 并不特别熟悉,但一种可行的方法是创建一个具有正确名称的全新存储库,将代码推送到该存储库中,然后删除旧存储库。

于 2011-01-16T22:21:50.997 回答
0

使用 Greg Hewgill 作为一个想法,您可以在配置文件中重命名存储库。您可能想先在虚拟存储库上尝试。我怀疑旧名称将被删除,新名称将被创建,您需要在本地更新您的来源然后推送。

于 2011-01-17T09:53:45.050 回答
-1

一种干净的方法是将新存储库创建为空存储库,然后执行以下操作:

假设旧为旧,新(空)为新:

# 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 处理其内部。此外,您必须更新 gitolite-admin 但顺序没有限制。

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

不过,应该按照 gitolite 的说明(在本地)删除旧存储库。

于 2014-06-06T23:27:21.527 回答