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 改回去就行。
相关推荐
青春易逝丶1 小时前
Git相关
git
Zkaisen1 小时前
GIt从零开始:小白完整学习文档
git·学习
CSDN_RTKLIB2 小时前
【git commit】做了什么
git
CSDN_RTKLIB2 小时前
git add . 筛选待加入文件的依据
git
louis.D.17 小时前
git 删除标签完整步骤总结
git
晴天1618 小时前
Git 图形界面工具现状-Day28
git
AD_youyu21 小时前
Git 安装教程
git
hj2862511 天前
Git 与 DevOps/CI/CD 核心知识整理
git
中科三方1 天前
DNS解析中的“委派“是什么意思?如何正确配置NS记录?
git·github·dns解析