5161

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

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

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

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

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

4

31 回答 31

8329

你可以

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

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

于 2010-03-12T12:55:50.670 回答
1379
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

于 2013-10-10T14:43:44.250 回答
146

git remote set-url {name} {url}

git remote set-url origin https://github.com/myName/GitTest.git
于 2015-12-28T04:53:35.127 回答
122

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

从我有限的测试(git pull origin; git push origin; gitx)来看,一切似乎都井然有序。是的,我知道弄乱 git 内部是不好的形式。

于 2011-02-15T02:52:36.157 回答
67
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

于 2015-04-26T23:13:21.763 回答
65

切换远程 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)
于 2017-12-08T11:01:32.830 回答
45

如此处所见,

$ 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
于 2020-04-02T08:24:56.727 回答
33
  1. 使用 gitbash git remote rm origin上的命令删除原点
  2. 现在使用 gitbash git remote add origin添加新的 Origin (从您的项目存储库中的位存储库复制 HTTP URL)完成
于 2016-06-24T11:10:54.347 回答
27

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

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

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

于 2019-12-19T09:25:24.697 回答
22

检查 git 远程连接:

git remote -v

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

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

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

git push --set-upstream origin master -f

于 2018-12-18T05:22:28.743 回答
19

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

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

为你...

于 2017-07-31T07:33:37.723 回答
19

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

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.gitNEW_REPOSITORY.git喜欢:

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

如果是HTTPS,您可以将 URL 从更改REPOSITORY.gitNEW_REPOSITORY.git

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

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

于 2020-08-17T20:03:44.517 回答
18

我工作:

git remote set-url origin <project>
于 2018-05-06T18:24:43.690 回答
18

这非常容易和简单;只需按照这些说明进行操作。

  1. 添加或更改远程源:
    git remote set-url origin githubrepurl
    
  2. 您当前在此本地存储库中的远程 URL:
    git remote show origin
    
于 2022-02-01T21:33:53.180 回答
17

在此处输入图像描述

故障排除 :

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

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

git remote set-url sofake https://github.com/octocat/Spoon-Knife 致命:没有这样的远程'sofake'

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

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

于 2018-10-15T06:16:47.600 回答
17

如果您是组织所有者或拥有仓库的管理员权限,则可以重命名仓库。

 git remote set-url origin new_url

了解更多

于 2021-07-27T10:26:06.757 回答
16

在 Git Bash 中,输入命令:

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

输入凭据

完毕

于 2017-04-25T09:48:25.023 回答
16

将远程 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-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
于 2019-05-25T11:54:35.073 回答
15

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

安慰

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]  <------------------------------------
...

TortoiseGit

第 1 步 - 打开设置

第 2 步 - 更改网址

然后只需编辑 URL。

源树

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

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

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

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

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

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

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

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

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

在此处输入图像描述

在此处输入图像描述

参考。支持

于 2019-04-02T13:37:29.463 回答
14

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


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

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

于 2020-02-28T13:43:12.253 回答
13

对我来说,接受的答案仅适用于 fetch 而不是 pull 的情况。我做了以下工作以使其也适用于推送。

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
于 2021-05-06T11:27:37.170 回答
10

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

nano .git/config

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

git remote -v 
于 2020-02-07T04:24:21.000 回答
9

另一种方法是重命名“旧”原点(在下面的示例中,我将其简单命名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
于 2020-09-20T12:25:45.273 回答
8

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

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

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

于 2017-08-20T15:14:55.747 回答
5

卸下遥控器

使用 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)
于 2020-06-06T11:05:59.383 回答
4

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

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

脚步:

export gituser='<Username>:<password>@'
git remote set-url origin https://${gituser}<gitlab_repo_url> 
git push origin <Branch Name>
于 2021-03-03T05:52:11.010 回答
2

检查您的权限

就我而言,我需要检查我的用户名

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

问题是我的许可我有两个私人 git 服务器和存储库

第二个帐户是该新回购的管理员,第一个是我的默认用户帐户,我应该授予第一个权限

于 2020-02-06T16:35:35.550 回答
1

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

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

主页 -> 设置

Git -> 存储库设置

遥控器 -> 编辑

在此处输入图像描述

于 2019-10-25T17:53:16.300 回答
1

如果您的存储库是私有的,那么

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

参考

于 2019-12-10T05:08:47.480 回答
1

(仅限 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]")}
于 2021-05-17T10:05:33.737 回答
0

如果您在 Linux 或 Mac 上使用sed /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 替换包含字符串的整行

于 2021-07-06T13:07:39.647 回答