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

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

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

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

回答

您可以

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

(请参阅参考资料git help remote)或者您可以.git/config在那里编辑和更改网址.除非你做一些非常愚蠢的事情,否则你不会有失去历史的危险(如果你担心,只要复制你的回购,因为你的回购你的历史.)

  • @kelorek或者你可以第一次`git push -u origin master` 🙂
  • 如果你有一个不同的shell用户,那么你可能想在新url的开头指定你的git用户,例如:`myself @ git:// new.url.here`
  • 我还必须`git remote set-url --push origin git:// ...`以便设置origin ...(push)url.
  • 您可能还希望使用以下命令为新的原始位置设置主上游分支:`git branch -u origin/master`.这将允许你只是'git push`而不是每次都要'git push origin master`.
  • 对于多个分支,可以使用git push -u --all将所有分支一次推送到新的url(而不是git push -u origin master)。

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

  • Amazing that you got almost a thousand upvotes and consequently almost ten thousand points for just giving the same answer as the accepted one, but then three years later.
  • @MS Berends The `git remote -v` helped for verification, whereas the accepted solution did not provide that.

更改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.comnewhost.com,保存文件,您就完成了.

从我的有限测试(git pull origin; git push origin; gitx)看来,一切都井井有条.是的,我知道混淆git内部结构是不好的形式.


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


正如这里所见,

$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master
  • When adding an answer to a ten year old question with twenty one other answers it is really important to include an explanation of your answer and to point out what new aspect of the question your answer addresses. With answers that are a series of commands it is useful to explain what each is doing and how to undo the effects of each of them if that is possible. The undo is important in case someone is able to perform the first few steps, but then encounters an error on a later step.
  • @JasonAller I think this is fairly self-explanatory though and it's the best answer here by far, the others are a joke.

切换远程URL

开放式终端.

Ist步骤: - 将当前工作目录更改为本地项目.

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

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

第4步: - 现在验证远程URL是否已更改.

git remote -v
验证新的远程URL

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

git remote set-url origin git@github.com:<username>/<repo>.git
git remote set-url origin git@github.com:<username>/<repo>.git

从您的 repo 终端编写以下命令:

有关更改遥控器中 url 的更多详细信息,请参阅此链接。


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

git remote set-url {name} {url}

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


故障排除 :

尝试更改遥控器时可能会遇到这些错误。没有这样的远程 '[name]'

此错误意味着您尝试更改的遥控器不存在:

git remote set-url SOFAKE https://github.com/octocat/Spoon-Knife
致命:没有这样的远程“沙发”

检查您是否正确键入了远程名称。

参考:https : //help.github.com/articles/changed-a-remote-s-url/


导航到本地存储库的项目根目录并检查现有遥控器:

git remote -v
git remote -v
git remote -v

如果您的存储库使用SSH,您将看到如下内容:

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

如果您的存储库使用HTTPS,您将看到如下内容:

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

更改 URL 是通过git remote set-url. 根据 的输出git remote -v,您可以通过以下方式更改 URL:

在的情况下,SSH,你可以更改URL REPOSITORY.git,以NEW_REPOSITORY.git这样的:

$ git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git

而在的情况下,HTTPS,您可以更改URL REPOSITORY.git,以NEW_REPOSITORY.git这样的:

$ git remote set-url origin https://github.com/USERNAME/NEW_REPOSITORY.git

注意:如果您更改了GitHub用户名,您可以按照与上述相同的过程更新与您的存储库关联的用户名的更改。你只需要更新USERNAMEgit remote set-url命令。


更改远程上游:
git remote set-url origin <url>


添加更多上游:
git remote add newplace <url>

所以你可以选择在哪里工作
git push origin <branch>git push newplace <branch>


要检查git远程连接:

现在,将本地存储库设置为远程git:

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

现在使其成为上游或推送使用以下代码:

git push --set-upstream origin master -f


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

克隆它的远程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

为了你...


在Git Bash中,输入命令:

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

输入凭据

完成


我工作:

git remote set-url origin <project>

您可以通过编辑配置文件来更改 url。转到您的项目根目录:

nano .git/config

然后编辑 url 字段并设置新的 url。保存更改。您可以使用该命令验证更改。


另一种方法是重命名“旧”原点(在下面的示例中,我将其简单命名old-origin)并添加一个新原点。如果您仍然希望能够时不时地推送到旧源,这可能是理想的方法

git remote rename origin old-origin
git remote add origin git@new-git-server.com>:<username>/<projectname>.git

如果您需要将本地状态推送到新的来源:

git push -u origin --all
git push -u origin --tags

对我来说,接受的答案仅适用于 fetch 而不是 pu

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

ll 的情况。我做了以下工作以使其也适用于推送。

所以要更新获取 URL:

要更新拉取 URL:


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

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

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


您有很多方法可以做到这一点:

安慰

git remote set-url origin [Here new url]

只需确保已在存储库所在的位置将其打开即可。

设定档

它放置在.git / config(与存储库相同的文件夹)中

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = [Here new url]  <------------------------------------
...

龟龟

然后,只需编辑URL。

源树

参考 支持


例:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

好处是您可以在使用ssh-agentgit push自动执行:

#!/bin/bash
# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent
# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

放置一个脚本文件$HOME/.ssh/agent以使其ssh-add使用期望运行,如下所示:

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

以上是如何更改远程Git存储库的URI(URL)?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>