我在我的硬盘驱动器(本地)上克隆的 USB 密钥上有一个 repo(origin)。我将 “origin” 移动到 NAS 并成功测试从这里克隆它。
我想知道我是否可以在 “本地” 设置中更改 “origin” 的 URI,因此它现在将从 NAS 中提取,而不是从 USB 密钥中提取。
现在,我可以看到两个解决方案:
将所有内容推送到 usb-orign,然后再将其复制到 NAS(由于对 nas-origin 的新提交,意味着很多工作);
添加一个新的遥控器到 “本地” 并删除旧遥控器(我担心我会打破我的历史)。
您可以
git remote set-url origin git://new.url.here
(请参阅git help remote
)或者您可以编辑.git/config
并更改其中的 URL。除非你做一些非常愚蠢的事情,否则你不会有失去历史的危险(如果你担心,只要复制你的回购,因为你的回购是你的历史。)
git remote -v
# View existing remotes
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL
git remote -v
# Verify new remote URL
# origin https://github.com/user/repo2.git (fetch)
# origin https://github.com/user/repo2.git (push)
来自: http : //pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
希望这不是你需要做的事情。我一直用来与几个 git 项目合作的服务器让域名过期。这意味着要找到一种迁移本地存储库以重新同步的方法。
更新:感谢 @mawolf 指出最近的 git 版本有一个简单的方法(2010 年 2 月后):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
有关详细信息,请参见手册页。
如果您使用的是旧版本,请尝试以下操作:
作为一个警告,这只是因为它是相同的服务器,只是使用不同的名称。
假设新主机名是newhost.com
,而旧主机名是oldhost.com
,则更改非常简单。
编辑工作目录中的.git/config
文件。你应该看到类似的东西:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
将oldhost.com
更改为newhost.com
,保存文件即可。
从我的有限测试( git pull origin; git push origin; gitx
)开始,一切似乎都是有序的。是的,我知道混淆 git 内部结构是不好的形式。