协慌网

登录 贡献 社区

更改远程 Git 存储库的 URI(URL)

我在我的硬盘驱动器(本地)上克隆的 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)

更改远程的 URL

更改 Git Origin Server 的主机

来自: 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 内部结构是不好的形式。