如何将git存储库从github移动到运行gitolite的本地服务器

Rui*_*ves 4 git gitolite

我想知道将目前托管在github上的所有git存储库移动到基于gitolite的新git服务器的更好方法.

仅仅是为了了解,我正在进行此转换的原因是采用Redmine来支持我们的项目管理流程.

Tux*_*ude 6

在gitolite-admin/conf/gitolite.conf中添加新的repo

repo my-new-repo
    RW+            = your-user
Run Code Online (Sandbox Code Playgroud)

添加,提交并将更改推送到gitolite-admin

git add conf/gitolite.conf
git commit -m "Added my-new-repo"
git push origin
Run Code Online (Sandbox Code Playgroud)

克隆你的github repo并检查所有分支

git clone github.com:/USERNAME/YOUR_REPO.git
cd YOUR_REPO
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do     git branch --track ${branch##*/} $branch; done
Run Code Online (Sandbox Code Playgroud)

删除github遥控器,并添加你的gitolite遥控器:

git remote rm origin
git remote add origin YOURSERVER:my-new-repo.git
Run Code Online (Sandbox Code Playgroud)

将所有refs推送到由gitolite管理的repo:

git push --all origin
Run Code Online (Sandbox Code Playgroud)

我验证了我的测试存储库中的步骤,并且所有refs似乎都已传播到新的repo中.

更新:像Seth指出的那样,除了分支之外的任何其他引用都不会传播到新的repo.我也觉得镜子会是一个更好的选择.


Ray*_*Tau 5

参考这个:http://gitolite.com/gitolite/basic-admin/#appendix-1-bringing-existing-repos-into-gitolite.怎么样:

  1. 在gitolite服务器上,使用该命令创建github存储库的镜像 git clone --mirror <github git repo path>
  2. 将镜像仓库移动到上面链接中的正确位置,然后按照将现有仓库移动到指南的gitolite的部分进行操作?