我使用 gitolite 创建了一个 Git 代码库,现在我想要重命名这个库。
我该如何操作呢?
在 gitolite 的 readme 文件中提到不应该直接在服务器上进行操作。但是在这种情况下,我猜需要在服务器上做一些工作,对吗?
如gitolite基本管理员手册中所述:
这类似于删除仓库; gitolite
中没有用于此操作的代码。您需要执行以下步骤:
登录到服务器,cd $REPO_BASE
(默认:cd ~/repositories
),然后
mv old-name.git new-name.git
返回到您的gitolite-admin克隆,编辑conf/gitolite.conf
并将所有出现的old-name
替换为new-name
。然后像往常一样添加、提交并推送。
这两个步骤的顺序很重要;不要颠倒它们:-)
在gitolite3上需要第三个步骤:
gl-conf
并将存储库名称更改为新名称当然,每个用户都应更新其克隆配置以指向新的仓库名称。
gl-conf
并更改存储库名称。 - Fernando Correiagit remote set-url git@your.server:new-name.git
,然后执行 git fetch
确保没有错误。 - cneuromv
命令之前运行rm -r new-name.git
即可。 - Arnaud P以Greg Hewgill为例,您可以在配置文件中重命名存储库。建议您先在虚拟存储库上尝试此操作。我猜测旧名称将被删除,新名称将被创建,您需要在本地更新源,然后进行推送。
# 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的说明(本地)进行。