问题
I created a Git repository using gitolite. Now I would like to rename that repository.
How can I do this?
In gitolite's readme is says that I should not work directly on the server. But I guess I have to do some work on the server in this case, right?
回答1:
As stated in the gitolite basic-admin manual:
renaming a repo
This is similar; there's no code to do this in gitolite. What you do is:
log on to the server,
cd $REPO_BASE(default:cd ~/repositories), andmv old-name.git new-name.gitback on your gitolite-admin clone, edit
conf/gitolite.confand replace all occurrences ofold-namewithnew-name. Then add, commit, and push as usual.
The order of these 2 steps is important; do not reverse them :-)
A third step is necessary on gitolite3:
- edit file
gl-confin the repo and change the repository name to the new name
And of course, every user should update his clone configuration to point to the new repo name.
回答2:
I'm not familiar with gitolite specifically, but one approach that might work is to create a completely new repository with the correct name, push your code up into that one, and then delete the old one.
回答3:
Using Greg Hewgill as an idea, you possibly can rename the repository in the config file. You may want to try that on a dummy repository first. My suspicions is the old name will be deleted, the new will be created and you need to update your origins locally then push.
回答4:
A clean approach is to create the new repository as an empty one, then do the following:
Assuming old is OLD and new (empty) is 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
Or you can use directly the remote repo for OLD:
# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master
This will keep all history and will let gitolite handle its internals. Additionally you'll have to update gitolite-admin but there's not limitation in the order.
This also works remotely without problems.
Deleting the OLD repository should be done per gitolite's instructions (locally) though.
来源:https://stackoverflow.com/questions/4708465/how-do-i-rename-a-git-repository-created-with-gitolite