我如何重命名使用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-name
replace所有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的说明完成(本地)。