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

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

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

目前,我可以看到两种解决方案:

  • 将所有内容推送到USB源,并再次将其复制到NAS(由于新提交到NAS源,意味着大量工作);

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

3184063 次浏览

你可以的

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

请参阅#0。您还可以编辑.git/config并更改那里的URL。

除非你做了一些非常愚蠢的事情,否则你不会有失去历史记录的危险(如果你担心,只要复制你的存储库,因为你的存储库你的历史记录。

更改Git源服务器的主机

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

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 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远程设置url{name}{url}

git remote set-url origin https://github.com/myName/GitTest.git
  1. 在gitbash上使用命令删除原点git远程rm源
  2. 现在使用gitbash添加新的Origingit远程添加来源(从位桶中的项目存储库复制HTTP URL)完成

在Git Bash中,输入命令:

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

输入证书

成交

如果你克隆你的本地将自动包含,

它被克隆的远程URL。

您可以使用git remote -v检查它

如果你想改变它,

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

在这里,

起源-你的分支

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

git remote remove urlandgit remote add origin url

为了你…

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

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

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

切换远程URL

打开终端。

第一步:-将当前工作目录更改为本地项目。

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

git remote -v

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

使用git远程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)

我工作:

git remote set-url origin <project>

在此处输入图片描述

解决方法:

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

此错误表示您尝试更改的远程不存在:

git远程设置url sofakehttps://github.com/octocat/Spoon-Knife致命:没有这样的远程“软件”

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

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

检查git远程连接:

git remote -v

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

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

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

git push --set-upstream origin master -f

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

控制台

git remote set-url origin [Here new url]

只要确保您已经在存储库所在的地方打开了它。

配置

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

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true[remote "origin"]url = [Here new url]  <------------------------------------...

TortoiseGit

步骤1-打开设置

步骤2-更改URL

然后编辑URL。

资源树

  1. 单击工具栏上的“设置”按钮以打开存储库设置窗口。

  2. 单击“添加”将远程存储库路径添加到存储库。将打开“远程详细信息”窗口。

  3. 输入远程路径的名称。

  4. 输入远程存储库的URL/路径

  5. 输入远程存储库的托管服务的用户名。

  6. 单击“确定”添加远程路径。

  7. 回到存储库设置窗口,单击“确定”。现在应该在存储库上添加新的远程路径。

  8. 如果您需要编辑已添加的远程路径,只需单击“编辑”按钮。您应该被引导到“远程详细信息”窗口,您可以在其中编辑远程路径的详细信息(URL/路径/主机类型)。

  9. 要删除远程存储库路径,请单击“删除”按钮

在此处输入图片描述

在此处输入图片描述

参考支持

将远程git URI更改为git@github.com而不是https://github.com

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

示例:

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

好处是,当你使用ssh代理时,你可以做#0自动

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

放一个脚本文件$HOME/.ssh/agent让它运行ssh-add使用期望如下:

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

对于那些想要从Visual Studio 2019进行此更改的人

打开团队资源管理器(Ctrl+M)

首页->设置

Git->存储库设置

移除->编辑

在此处输入图片描述

如果你的仓库是私有的

  1. 从开始菜单打开控制面板
  2. 选择用户帐户
  3. 在左侧菜单中选择“管理您的凭据”
  4. 删除与Git或GitHub相关的任何凭据

参考

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

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

有关更改远程URL的更多详细信息,请参阅这个链接。

检查您的权限

在我的情况下,我需要检查我的用户名

我有两个或三个具有单独凭据的存储库。

问题是我的权限我有两个私有git服务器和存储库

这第二个帐户是新的仓库的管理员,第一个是我的默认用户帐户,我应该先开通权限

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

nano .git/config

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

git remote -v

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


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

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

如图这里

$ 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

删除遥控器

使用git Remote rm命令从存储库中删除远程URL。

    $ git remote -v# View current remotes> origin  https://github.com/OWNER/REPOSITORY.git (fetch)> origin  https://github.com/OWNER/REPOSITORY.git (push)> destination  https://github.com/FORKER/REPOSITORY.git (fetch)> destination  https://github.com/FORKER/REPOSITORY.git (push)
$ git remote rm destination# Remove remote$ git remote -v# Verify it's gone> origin  https://github.com/OWNER/REPOSITORY.git (fetch)> origin  https://github.com/OWNER/REPOSITORY.git (push)

导航到本地存储库的项目根目录并检查现有的远程数据库:

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用户名,您可以按照上述相同的过程更新与存储库关联的用户名更改。您只需更新git remote set-url命令中的USERNAME

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

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

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

git push -u origin --allgit push -u origin --tags

如果您想在原始URL中设置用户名和密码,您可以按照以下步骤操作。

在变量中导出密码将避免特殊字符的问题。

步骤:

export gituser='<Username>:<password>@'git remote set-url origin https://${gituser}<gitlab_repo_url>git push origin <Branch Name>

对我来说,接受的答案只在获取而不是拉取的情况下有效。我做了以下操作,使其也适用于推送。

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

所以要更新获取URL:

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

要更新拉取URL:

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

(仅限Windows PS)在所有本地存储区中递归更改服务器/协议

Get-ChildItem -Directory -Recurse -Depth [Number] -Hidden -name | %{$_.replace("\.git","")} | %{git -C $_ remote set-url origin $(git -C $_ remote get-url origin).replace("[OLD SERVER]", "[NEW SERVER]")}

如果你在Linux或Mac上使用ed/grep,它也很容易更改而不会丢失关联。

最近我这样做是为了在配置中本地更改我所有存储库的用户名,但我也对远程行执行了完全相同的方法。

VARIABLE_FIND='old'; VARIABLE_REPLACE='new'; path_name='~/PycharmProjects/*/.git/'; grep -rl --include=config "${VARIABLE_FIND}" "${path_name}" | xargs sed -i "s|${VARIABLE_FIND}|${VARIABLE_REPLACE}|g"

对于替换有匹配的整行,您可以这样做:

VARIABLE_FIND='someneedle'; VARIABLE_REPLACE='somenewvalue'; path_name='/home/*/' grep -rl --include=config "${VARIABLE_FIND}" "${path_name}" | xargs sed -i "/${VARIABLE_FIND//\//\\/}/c\\${VARIABLE_REPLACE}" ;

参考:使用Sed替换包含字符串的整行

这是非常容易和简单的;只要按照这些指示。

  1. 对于添加或更改远程原点:
    git remote set-url origin githubrepurl
  2. 要查看您当前在此本地存储库中拥有的远程URL:
    git remote show origin

首先,您需要键入此命令以查看现有的遥控器

git remote -v

然后,您需要键入此命令以更改“原始”远程的URL

git remote set-url origin <paste your GitHub URL>

转到要更改的文件夹/存储库并执行以下命令:

下面的命令将更改存储库的git get url。

git remote set-url origin <your new url>.git

下面的命令将更改存储库的git推送url。

git remote set-url --push origin <your new url>.git

下面的命令用于检查是否反映了上述更改

git remote -v