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


我在我的硬盘驱动器(本地)上克隆的USB密钥上有一个repo(origin)。我将“origin”移动到NAS并成功测试从这里克隆它。

我想知道我是否可以在“本地”设置中更改“origin”的URI,因此它现在将从NAS中提取,而不是从USB密钥中提取。

现在,我可以看到两个解决方案:

  • 将所有内容推送到usb-orign,然后再将其复制到NAS(由于对nas-origin的新提交,意味着很多工作);

  • 添加一个新的遥控器到“本地”并删除旧遥控器(我担心我会打破我的历史)。


2800
2018-03-12 12:48


起源


我必须在旧版本的git(1.5.6.5)上执行此操作,并且set-url选项不存在。只需删除不需要的遥控器并添加一个具有相同名称的新遥控器就可以毫无问题地工作并保持历史记录。 - HotN


答案:


您可以

git remote set-url origin git://new.url.here

(看到 git help remote)或者你可以编辑 .git/config 并在那里更改URL。除非你做一些非常愚蠢的事情,否则你不会有失去历史的危险(如果你担心,只要复制你的回购,因为你的回购  你的历史。)


4577
2018-03-12 12:55



如果你有一个不同的shell用户,那么你可能想在新url的开头指定你的git用户,例如: myself@git://new.url.here - sobi3ch
您可能还希望为新的原始位置设置主上游分支: git branch -u origin/master。这将允许你 git push 而不是必须 git push origin master 每次。 - kelorek
@kelorek或者你可以 git push -u origin master 第一次 :) - hobbs
我也不得不这样做 git remote set-url --push origin git://... 为了设置原点...(推送)网址。 - jpillora
使用https://而不是git:// - Anil


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


581
2017-10-10 14:43



作为一个因缺乏视觉反馈而害怕终端的人,我非常感谢你的回答。 - daniel.sedlacek
我更喜欢这个答案。它更完整。 - Gabriel Villacis
这并不是因为我不喜欢霍布斯的答案,但我认为对于每个人来说,即使对于刚刚起步的工程师(或非工程师)来说,细节也更容易理解。 - Gabriel Villacis


更改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内部结构是不好的形式。


77
2018-02-15 02:52



形式不好?也许。但如果你 需要 要做一些作者没想到任何人需要做的事情,那么有时需要弄乱内部。但如果你弄错了,你必须愿意接受后果。 Backup your local repository _before_ messing with git internals. - Jesse Chisholm


git remote set-url origin git://new.location

(或者,打开 .git/config, 寻找 [remote "origin"],并编辑 url = 线。

您可以通过检查遥控器来检查它是否有效:

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

下次推送时,您必须指定新的上游分支,例如:

git push -u origin master

也可以看看: GitHub:更改远程URL


37
2018-04-26 23:13



我无法通过编辑.git / config来设置新的原点。它说URL中命名的git存储库不是git存储库。一旦我删除并重新创建了原点,一切都很顺利。不过,我没有查找git remote set-url作为我问题的解决方案。 - octopusgrabbus


  1. 使用gitbash上的命令删除原点 git remote rm origin 
  2. 现在使用gitbash添加新的Origin git remote add origin (从位桶中复制项目存储库中的HTTP URL) DONE

14
2018-06-24 11:10





git remote set-url {name} {url}

EX) git remote set-url origin https://github.com/myName/GitTest.git


13
2017-12-28 04:53





切换远程URL

开放式终端。

Ist Step: - 将当前工作目录更改为本地项目。

第二步: - 列出现有的遥控器,以获取要更改的遥控器的名称。

第三步: - git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

使用git remote set-url命令将远程的URL从HTTPS更改为SSH。

第四步: - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

现在验证远程URL是否已更改。

第五步: - git remote -v 验证新的远程URL

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

12
2017-12-08 11:01





如果你克隆了你的本地会自动编组,

克隆它的远程URL。

你可以用它来检查 git remote -v

如果你想改变它,

git remote set-url origin https://github.io/my_repo.git

这里,

起源 - 你的分支 

如果你想 覆盖 现有分支你仍然可以使用它..它将覆盖你现有的...它会做,

git remote remove url
and 
git remote add origin url

为你...


6
2017-07-31 07:33





在Git Bash中,输入命令:

git remote set-url origin https://NewRepoLink.git

输入凭据

完成


5
2018-04-25 09:48





如果您正在使用TortoiseGit,请按照以下步骤操作:

  1. 转到本地结帐文件夹,然后右键单击转到 TortoiseGit -> Settings
  2. 在左侧窗格中选择 Git -> Remote
  3. 在右侧窗格中选择 origin
  4. 现在改变了 URL 文本框值到新远程存储库的位置

您的分支机构和所有本地提交将保持不变,您可以像以前一样继续工作。


5
2017-08-20 15:14



最佳答案谢谢 - Chinthaka Devinda


我工作了:

git remote set-url origin <project>

5
2018-05-06 18:24