VS Code(trae)中更改项目Git远程地址的三种方法介绍

 更新时间:2026年08月31日 15:22:35   作者:李少兄  
本文主要为大家详细介绍了三种修改Git远程仓库地址的方法, 分别是命令行方式(推荐),使用git remote set-url origin 和直接编辑.git/config文件,感兴趣的小伙伴可以了解下

在日常开发中,我们经常会遇到需要更改项目 Git 远程地址的场景:公司自建的 GitLab 服务器迁移、项目从 GitHub 搬迁到 Gitee、仓库更换了所有者或重命名、从 HTTPS 协议切换到 SSH 协议……这些情况下,都需要修改本地项目所指向的远程仓库地址(Remote URL)。

远程地址保存在每位开发者本地的 .git/config 文件中,它不属于代码仓库本身,因此修改它不会影响任何代码内容,但它直接决定了你后续拉取(Pull)、推送(Push)、抓取(Fetch)等操作能否"找对门"。

一、前置知识:什么是"远程地址"

在动手之前,先花两分钟厘清底层概念。这有助于你理解后文每一种操作的本质,遇到问题时也能快速定位。

1.1 Remote 与 origin

在 Git 中,“远程”(Remote)指的是托管在服务器上的仓库(如 GitHub、Gitee、GitLab 或公司内网服务器)。一个本地仓库可以同时关联多个远程,每个远程都有一个名字,默认的名字叫 origin

在 VS Code 的终端(快捷键 Ctrl + `)中执行:

git remote -v

会看到类似这样的输出:

origin  https://github.com/old-user/old-repo.git (fetch)
origin  https://github.com/old-user/old-repo.git (push)

这两行分别表示"从远程拉取代码"和"向远程推送代码"时所使用的地址。我们所说的"更改 Git 地址",本质上就是修改这个名字背后对应的 URL。

1.2 地址存储在哪里

远程地址保存在项目根目录下 .git/config 文件中:

[remote "origin"]
    url = https://github.com/old-user/old-repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

后文要讲的所有方法——无论命令行还是图形界面——最终修改的都是这一处配置。理解了这一点你就会明白:三种方法只是同一个动作的不同入口,选自己顺手的即可。

1.3 修改前的准备工作

为了安全、顺利地完成修改,建议先确认三件事:

  1. 本地代码已提交:执行 git status 确认工作区干净,未提交的修改先 commit 或 git stash 暂存,避免后续拉取、推送时产生干扰。
  2. 新地址可访问且有权限:在浏览器中打开新仓库地址,确认仓库存在,并确认你的账号对其拥有读写权限(私有仓库尤其要注意)。
  3. 记录旧地址:把 git remote -v 的输出保存下来,万一改错可以随时回退。

二、方式一:命令行git remote set-url(最推荐)

这是最直接、最标准、也是老开发者最推荐的方式,一条命令完成修改,且不会破坏现有的分支跟踪关系。

2.1 操作步骤

第一步:查看当前远程地址

git remote -v

确认当前远程名称(一般为 origin)和旧地址,避免改错对象。

第二步:执行修改

git remote set-url origin <新的Git仓库地址>

示例:

# 改为新的 HTTPS 地址
git remote set-url origin https://github.com/new-user/new-repo.git

# 改为 SSH 地址
git remote set-url origin git@github.com:new-user/new-repo.git

第三步:验证修改结果

git remote -v

输出中 fetch 与 push 两行都显示新地址,即说明修改成功。

第四步(可选):同步远程分支信息

git fetch origin

此时可能会弹出身份验证提示(详见第六章),完成验证后,本地会重新同步新仓库的分支信息。

2.2 进阶用法

修改远程名称:如果想把 origin 改名为其他名字,例如 main-server

git remote rename origin main-server

新增第二个远程:如果想保留旧地址的同时再加一个新地址(例如同时推送到公司内网和 GitHub),不要覆盖 origin,而是新增一个远程:

git remote add backup https://github.com/new-user/new-repo.git

之后可以分别用 git push origin maingit push backup main 推送到两个仓库。

2.3 为什么推荐这种方式

  • 一步到位:无需删除再重建,操作路径最短,出错空间最小。
  • 保留跟踪关系:本地分支的上游跟踪配置不受影响,改完即可正常 pull / push(前提是新仓库中存在对应分支)。
  • 通用性强:该命令在任何安装了 Git 的环境中都适用,不限于 VS Code,写脚本、写文档时也方便引用。

三、方式二:直接编辑.git/config配置文件

如果你喜欢"看到配置的本质",或者在某些不方便使用命令行的特殊环境里,可以直接编辑配置文件。

3.1 操作步骤

第一步:找到并打开文件

.git 是项目根目录下的隐藏文件夹:

  • Windows 资源管理器:在"查看"选项卡中勾选"隐藏的项目";
  • macOS Finder:按 Command + Shift + . 显示隐藏文件;
  • 更简单的方式:在 VS Code 终端中执行 git config --editcode .git/config,即可直接用编辑器打开该文件。

第二步:修改 url 字段

找到 [remote "origin"] 段落,将 url 的值改为新地址:

[remote "origin"]
    url = https://github.com/new-user/new-repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

第三步:保存并验证

保存文件后,在终端执行 git remote -v,确认新地址已生效。

3.2 注意事项

  • 不要改动其他内容fetch = +refs/heads/*:refs/remotes/origin/* 这一行是"引用规范"(refspec),负责把远程分支映射为本地的远程跟踪分支,保持原样即可,除非你明确知道自己在做什么。
  • 注意格式规范:URL 前后不要有多余空格,等号两侧保持原有格式;配置文件格式一旦写错,会导致所有 Git 命令报错。
  • 养成备份习惯:修改前可以把 config 文件复制一份备份,改坏了能一键还原。

这种方式的优点是直观,能一眼看到所有远程配置(包括多个 remote);缺点是手工编辑有笔误风险,适合对配置结构有一定了解的开发者。

四、方式三:VS Code(trae) 图形界面"先删后加"法

对于不熟悉命令行的同学,VS Code 内置的源代码管理面板提供了纯鼠标操作的路径。但这里有一个很多教程写错、必须澄清的细节

4.1 图形界面没有"直接改 URL"的入口

在当前版本的 VS Code(trae) 中,点击源代码管理面板右上角的 ...(更多操作),展开 远程 子菜单后,只会看到两个选项:

  • 添加远程存储库…
  • 删除远程存储库

并没有"更改远程 URL"这样的选项(这一点已经过实测验证,菜单中确实只有上述两项)。

因此,图形界面的修改思路只能是:先删除旧的远程,再添加新的远程,最终效果与修改地址完全等价。

4.2 操作步骤

第一步:打开源代码管理面板

点击左侧活动栏的"源代码管理"图标(分支形状),或按快捷键 Ctrl + Shift + G(Mac 为 Cmd + Shift + G)。

第二步:删除旧远程

  1. 点击面板右上角的 ... 按钮;
  2. 在弹出菜单中选择 远程
  3. 在子菜单中点击 删除远程存储库
  4. 此时 VS Code 顶部会弹出下拉列表,列出现有的远程名称,选择 origin 并回车确认。

第三步:添加新远程

  1. 再次点击右上角的 ... 按钮;
  2. 选择 远程添加远程存储库…
  3. 顶部出现输入框,输入新的 Git 仓库 URL,回车;
  4. 接着会提示输入远程名称,输入 origin(保持默认名称,可以让后续的推送、拉取按钮以及分支跟踪习惯保持不变),回车确认。

第四步:验证与同步

在终端执行 git remote -v 确认新地址已生效,然后建议执行:

git fetch origin

重新从新仓库拉取远程分支信息。

4.3 "先删后加"法的特别说明

远程跟踪分支会被清空:删除远程时,Git 会同时删除 refs/remotes/origin/* 这类远程跟踪分支,重新添加后必须执行一次 git fetch origin 来重建它们。

可能需要重建跟踪关系:如果重新添加后发现 pull / push 不知道该对应哪个远程分支,或者新仓库还是空的,请执行:

git push -u origin main   # 分支名请根据实际情况替换,如 master

-u(即 --set-upstream)参数会把本地分支与远程分支关联起来,之后就可以直接裸用 git pull / git push 了。

名称建议沿用 origin:如果添加了别的名字(如 new-origin),后续所有命令都要显式带上这个名字,部分图形按钮的默认行为也会变化,因此如无特殊需求,请继续使用 origin

五、三种方式对比

对比项方式一:命令行方式二:编辑配置文件方式三:图形界面先删后加
操作难度一条命令需理解配置结构纯鼠标操作
出错风险极低依赖手工编辑
保留分支跟踪关系✅ 保留✅ 保留⚠️ 需 fetch / push -u 重建
适合人群所有开发者想理解原理者不习惯命令行的新手
推荐指数⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

无论选择哪种方式,最终效果完全一致——都是修改 .git/config[remote "origin"] 下的 url。选择自己最顺手的一种即可。

六、改完地址后必读:身份验证弹窗与凭据问题

这是实际操作中最容易卡住、也最容易被教程忽略的环节:改完地址后,第一次执行拉取(Pull)、抓取(Fetch)或推送(Push)时,VS Code 顶部通常会弹出账号密码输入框,必须完成输入和验证之后,代码才能继续拉取或推送。

6.1 为什么会弹窗

操作系统的凭据管理器(Windows 凭据管理器 / macOS 钥匙串)中,缓存的还是旧仓库、旧账号的用户名与密码(或 Token)。地址更改后:

  • 新地址的域名可能与缓存凭据的域名不匹配,Git 找不到可用凭据;
  • 即使域名相同,若新仓库属于另一个账号或权限不同,旧凭据也会验证失败。

于是 Git 触发重新验证流程,VS Code 便在顶部弹出输入提示。这是正常的安全机制,不是报错。

6.2 弹窗时该怎么做

  1. 按顶部提示先输入用户名
  2. 再输入密码或个人访问令牌(Personal Access Token,简称 PAT)

特别注意:GitHub 等主流平台早已取消了对 HTTPS Git 操作的账号密码支持,此处必须填写个人访问令牌(PAT);Gitee 等平台虽部分仍支持密码,但也强烈推荐使用令牌。如果没有令牌,需要登录平台网页端,在"设置 → 开发者设置 / 安全设置 → 个人访问令牌"中生成一个,并勾选 repo(读写代码)等相关权限。

常见坑:如果系统自动填充了旧凭据,导致验证一直失败、又不再弹窗,就需要先手动清除旧凭据(见下一节),再重新触发验证。

6.3 如何清除旧凭据

  • Windows:打开"控制面板 → 凭据管理器 → Windows 凭据",在列表中找到 git:https://github.com(或对应平台域名)开头的条目,展开后点击"删除"。
  • macOS:打开"钥匙串访问"(Spotlight 搜索即可找到),搜索 github.com 等对应域名,找到相关凭据条目右键删除。
  • Linux:取决于你配置的 credential helper;若使用 store,凭据以明文保存在 ~/.git-credentials 文件中,删除对应行即可。

清除之后再次执行 pull / push,VS Code 就会重新弹出输入框,此时输入新账号的凭据即可。

6.4 如何避免以后每次都输密码

每次操作都输入令牌显然不现实,有两种成熟的"一劳永逸"方案:

方案 A:配置凭据助手(继续使用 HTTPS)

让 Git 把凭据交给系统凭据管理器保管,验证成功一次后,以后自动填充:

# Windows(Git for Windows 默认自带 GCM)
git config --global credential.helper manager

# macOS
git config --global credential.helper osxkeychain

# Linux(store 为明文保存,注意机器安全;也可使用 libsecret)
git config --global credential.helper store

配置完成后,只需在弹窗中输入一次用户名和令牌,系统便会保存,此后所有操作都在后台静默验证,不再弹窗。

方案 B:改用 SSH 协议(最推荐)

SSH 协议使用密钥对验证身份,配置完成后永远不需要再输入密码,且更稳定、更安全:

1.本地生成密钥对(已有可跳过):

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车使用默认路径即可(老旧系统不支持 ed25519 时,可改用 ssh-keygen -t rsa -b 4096)。

2.查看并复制公钥内容:

cat ~/.ssh/id_ed25519.pub

3.登录 Git 平台网页端,进入 设置 → SSH Keys(各平台名称略有不同),粘贴公钥并保存。

4.测试连接:

ssh -T git@github.com   # 域名按实际平台替换

看到欢迎信息即表示配置成功。

5.将远程地址改为 SSH 格式:

git remote set-url origin git@github.com:new-user/new-repo.git

此后所有拉取、推送都走密钥验证,彻底告别密码弹窗。对于长期、频繁使用 Git 的开发者,SSH 是最优选择。

七、其他常见问题答疑

Q1:改完地址后 push 提示远程仓库为空 / 被拒绝,怎么办?

如果新仓库是刚创建的空仓库,本地分支与远程分支尚未建立跟踪关系,执行:

git push -u origin main

即可把本地代码推上去并建立关联。如果新仓库在创建时勾选了"初始化 README / LICENSE",仓库中已有一个初始提交,两边历史不相交,push 会被拒绝。此时需要先拉取并允许合并不相关历史:

git pull origin main --rebase --allow-unrelated-histories
git push -u origin main

更干净的做法是:创建新仓库时不要勾选任何初始化选项,保持完全空仓库。

Q2:修改地址会影响团队其他成员吗?

不会。远程地址保存在每个人本地的 .git/config 中,属于本地配置,不会随代码推送同步。因此团队仓库迁移后,每个成员都需要在自己的机器上各自修改一次(或者干脆重新 clone 新仓库)。建议团队统一通知新地址与修改方法,降低沟通成本。

Q3:修改地址会丢失本地代码或提交历史吗?

不会。本地的所有提交历史、分支、标签都保存在 .git 目录中,与远程地址无关。修改地址只是"换了个收货地址",不会动"货物"本身。唯一的前提是新仓库能够接收这些货物(即 push 能成功)。

Q4:改错了地址,如何回退?

用同样的方式把地址改回旧值即可,例如:

git remote set-url origin <旧地址>

这也是前文强调"修改前先 git remote -v 记录原地址"的原因。

Q5:HTTPS 和 SSH 地址有什么区别?如何区分?

  • HTTPS 格式:以 https:// 开头,如 https://github.com/user/repo.git,使用用户名 + 密码/令牌验证,无需额外配置,适合临时使用或只读场景;
  • SSH 格式:以 git@ 开头,如 git@github.com:user/repo.git,使用密钥对验证,需一次性配置,适合长期开发。

两者指向同一个仓库,可以随时用 git remote set-url 互相切换,对代码没有任何影响。

Q6:改完地址后,VS Code 左下角分支显示或同步按钮异常?

多数情况下是远程跟踪分支尚未同步所致。执行一次 git fetch origin,或按 Ctrl + Shift + P 输入 Reload Window 重新加载窗口,面板状态即可恢复正常。

到此这篇关于VS Code(trae)中更改项目Git远程地址的三种方法介绍的文章就介绍到这了,更多相关Git远程地址修改方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Git使用小技巧之回滚与撤销详解

    Git使用小技巧之回滚与撤销详解

    这篇文章主要给大家介绍了关于Git使用小技巧之回滚与撤销的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Git具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 使用git上传到码云分支的实现

    使用git上传到码云分支的实现

    这篇文章主要介绍了使用git上传到码云分支的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 网站登录持久化Cookie方案

    网站登录持久化Cookie方案

    持久化登录 cookies 也就是当用户在登录框里点击“记住我的”的按钮后把 cookies 保存到用户的浏览器上
    2014-04-04
  • IM聊天教程之发送图片/视频/语音/表情

    IM聊天教程之发送图片/视频/语音/表情

    朋友在问如何在IM即时通讯中实现发送图片视频语音和表情呢,今天小编通过本文给大家详细介绍下,感兴趣的朋友一起看看吧
    2020-05-05
  • OpenClaw学习笔记:研究官网文档后整理的架构详解

    OpenClaw学习笔记:研究官网文档后整理的架构详解

    近期openclaw如火如荼,作为当下AI领域的C位,有必要对其进行了解,前期虽已部署试水,但对其原理不甚了解,查看官网文档又发现大量内容看不懂,感觉是官网的知识组织方式不够友好,这里结合官网文档和AI问答,整理出其架构,以便快速理解
    2026-03-03
  • hexo博客开启https的SSL 证书实现过程

    hexo博客开启https的SSL 证书实现过程

    这篇文章主要为大家介绍了hexo 博客开启https的SSL证书实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • sublime text 添加到鼠标右键功能

    sublime text 添加到鼠标右键功能

    这篇文章主要介绍了sublime text 添加到鼠标右键功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • git-github 子模块仓库更新(git submodule)及git中submodule子模块的添加、使用和删除操作

    git-github 子模块仓库更新(git submodule)及git中submodule子模块

    这篇文章主要介绍了git-github 子模块仓库更新(git submodule)/git中submodule子模块的添加、使用和删除,使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可,需要的朋友可以参考下
    2023-03-03
  • chatGPT与传统搜索结合创建新一代搜索引擎

    chatGPT与传统搜索结合创建新一代搜索引擎

    这篇文章主要为大家介绍了chatGPT与传统搜索结合创建新一代搜索引擎优点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • git merge最简洁用法详解

    git merge最简洁用法详解

    git-merge 命令是用于从指定的 commit(s) 合并到当前分支的操作,本文重点给大家介绍git merge最简洁用法,感兴趣的朋友跟随小编一起看看吧
    2020-12-12

最新评论