Git 修改绑定远程仓库

Git 修改绑定远程仓库完整操作

一、核心结论

更换远程地址完全不会丢失本地所有提交历史、分支、标签记录 。

提交记录存在本地仓库 .git 文件夹内,和远程仓库地址没有绑定关系;切换远程只是修改推送/拉取的目标服务器地址,本地历史永久保留。

二、操作步骤

1. 查看当前绑定的远程仓库

bash 复制代码
git remote -v

会输出类似内容:

复制代码
origin  git@gitee.com:xxx/old-repo.git (fetch)
origin  git@gitee.com:xxx/old-repo.git (push)

默认远程仓库名字都叫 origin。

2. 两种方式更换远程地址

方式1:直接修改原有 origin 地址(推荐,最简单)
bash 复制代码
# https 地址格式
git remote set-url origin https://github.com/新用户名/新仓库.git

# ssh 地址格式(配置过密钥用这个)
git remote set-url origin git@github.com:新用户名/新仓库.git
方式2:先删除旧远程,再重新添加新远程
bash 复制代码
# 删除旧的origin
git remote remove origin

# 添加新远程仓库
git remote add origin https://github.com/新用户名/新仓库.git

3. 校验是否修改成功

bash 复制代码
git remote -v

显示地址已经变为新仓库地址即可。

三、把本地所有提交推送到新远程仓库

场景1:新远程仓库是空仓库(刚创建,无任何文件)

推送主分支(主流现在是 main,部分旧仓库是 master)

bash 复制代码
# 分支是main
git push -u origin main

# 如果分支是master
git push -u origin master

-u 作用:绑定本地分支和远程对应分支,后续直接 git push/git pull 即可。

场景2:新远程仓库已有部分代码(README、许可证等文件)

直接推送会冲突,需要先拉取合并:

bash 复制代码
git pull origin main --allow-unrelated-histories
# 解决冲突后,再推送
git push origin main

四、补充常见问题

  1. 之前旧远程的提交记录还能看吗?
    本地任意时刻都可以用 git log 查看全部历史;如果想偶尔访问旧远程,可以新增一个自定义名称的远程,不覆盖origin:
bash 复制代码
git remote add old git@gitee.com:xxx/old-repo.git
# 拉取旧仓库代码:git fetch old
  1. 切换远程后分支、tag都还在吗?
    本地所有分支、标签全部保留,推送新仓库后,执行:
bash 复制代码
# 推送所有本地分支
git push origin --all
# 推送所有标签
git push origin --tags

即可把全部分支、标签同步到新远程仓库。

  1. 中途想换回旧地址:重复 git remote set-url 改回去就行。
相关推荐
Change!!6 小时前
git小乌龟,切换到新分支处理
git·git切到新分支,旧代码贮藏
LannyChung1 天前
PowerShell 下 git log 中文乱码的完整排查与解决
windows·git
import_random1 天前
[git]本地main,origin/main,远程main(关系2)
git
golang学习记1 天前
Zed Git重大更新:目录级对比支持分栏Diff
git·vscode·zed
阿俊-全栈开发1 天前
LikeShop 单商户高级版二开项目的 Git 分支管理与版本发布规范
git·likeshop·likeshop开源商城·likeshop多商户
努力弹琴的大风天1 天前
TortoiseGit 仓库不显示绿色对号解决方案
git·tortoisegit·图标显示
我不会插花弄玉1 天前
GitHub实操【由浅入深-Git】
git·github
说实话起个名字真难啊1 天前
Git常用小问题笔记
笔记·git·elasticsearch
橙露2 天前
git简明教程以及资源分享
大数据·git
codigger2 天前
别再靠"最终版-改"活下去了:一篇讲透 Git 与 GitHub
git·程序员·github·编程·控制版本