我使用gitolite创建了一个Git存储库。现在我想重命名该存储库。
我该怎么做?
在gitolite的自述文件中说我不应该直接在服务器上工作。但我想在这种情况下我必须在服务器上做一些工作,对吗?
答案 0 :(得分:132)
如gitolite basic-admin manual中所述:
这是类似的;在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
并将存储库名称更改为新名称当然,每个用户都应该更新他的克隆配置以指向新的repo名称。
答案 1 :(得分:9)
我并不熟悉gitolite,但可能有一种方法是创建一个具有正确名称的全新存储库,将代码推送到该存储库中,然后删除旧代码。
答案 2 :(得分:0)
使用Greg Hewgill作为一个想法,您可以在配置文件中重命名存储库。您可能希望首先在虚拟存储库上尝试。我的怀疑是旧名称将被删除,新的名称将被创建,您需要在本地更新您的起源然后推送。
答案 3 :(得分:-2)
一种干净的方法是将新存储库创建为空存储库,然后执行以下操作:
假设old为OLD且new(empty)为NEW:
# 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,但订单中没有限制。
这也可以毫无问题地远程工作。
删除OLD存储库应该按照gitolite的说明(本地)进行。