我有一台服务器,我正在取消.我唯一要迁移的是我的存储库.此服务器被列为我的一个项目的源(主).移动存储库以保留历史记录的正确方法是什么.
要添加新的仓库位置,
git remote add new_repo_name new_repo_url
然后将内容推送到新位置
git push new_repo_name master
最后删除旧的
git remote rm origin
之后,您可以执行bdonlan所说的内容并编辑.git/config文件以将new_repo_name更改为origin.如果不删除原点(原始远程存储库),则只需将更改推送到新的存储库即可
git push new_repo_name master
如果要迁移所有分支和标记,则应使用以下命令:
git clone --mirror [oldUrl]
用所有分支克隆旧的仓库
cd the_repo git remote add remoteName newRepoUrl
设置一个新的遥控器
git push -f --tags remoteName refs/heads/*:refs/heads/*
在refs/heads下推送所有引用(这可能是你想要的)
这对我来说完美无缺.
git clone --mirrorcd git remote set-url origin git push -f origin
我必须提一下,这会创建一个当前仓库的镜像,然后将其推送到新位置.因此,这可能需要一些时间来进行大型回购或慢速连接.
复制它.这真的很简单.:)
在客户端,只需在客户端的本地存储库中编辑.git/config,根据需要将远程控制器指向新的URL.
在某些其他答案中,这部分是完成的.
git clone --mirror git@oldserver:oldproject.git cd oldproject.git git remote add new git@newserver:newproject.git git push --mirror new
我只是按照简单的说明列表重新发布其他人所说的内容.
移动存储库:只需登录到新服务器,cd
到现在要保存存储库的父目录,然后使用rsync
从旧服务器复制:
new.server> rsync -a -v -e ssh user@old.server.com:path/to/repository.git .
让客户端指向新的存储库:现在在使用存储库的每个客户端上,只需删除指向旧源的指针,然后将其添加到新存储库中.
client> git remote rm origin client> git remote add origin user@new.server.com:path/to/repository.git
在GitHub上查看这个食谱:https: //help.github.com/articles/importing-an-external-git-repository
在发现之前我尝试了很多方法git push --mirror
.
像魅力一样工作!
我按照BitBucket上的说明移动了一个包含所有分支的仓库.以下是#
角色后面的解释步骤:
cd path/to/local/repo git remote remove origin # to get rid of the old setting, this was not in the BitBucket instructions git remote add origin ssh://git@bitbucket.org// # modify URL as needed git push -u origin --all # pushes _ALL_ branches in one go git push -u origin --tags # pushes _ALL_ tags in one go
为我工作得很好.
请按照以下步骤操作:
git remote add new-origin
git push - all new-origin
git push --tags new-origin
git remote rm origin
git remote重命名新起源