已配置SSH密钥的新电脑如何免重新克隆推送代码到GitHub仓库
解决方法
首先先确认你配置的SSH密钥能正常连通GitHub,打开终端执行以下命令:ssh -T git@github.com
如果返回结果包含你的GitHub用户名,且提示认证成功,就可以继续后续操作。
根据你本地现有文件的情况,选对应方案即可,不需要完整重克隆仓库:
你手头有旧设备拷出来的完整项目文件夹(里面带.git隐藏文件夹)
- 终端切到项目根目录,跑
git remote -v看当前绑定的远程地址 - 如果显示的是HTTPS开头的地址,执行
git remote set-url origin git@github.com:你的用户名/仓库名.git换成SSH地址 - 跑
git pull origin 你用的主分支名(现在一般是main,老仓库可能是master)把远程最新的提交拉下来和本地对齐 - 之后正常add、commit、push就行,和旧电脑上的操作完全一致
你本地现在没有项目文件,不想拉全量历史占空间
- 切到你准备存项目的目录,跑浅克隆命令:
git clone --depth=1 git@github.com:你的用户名/仓库名.git - 这个命令只会拉最新一次提交的代码,体积很小,下载速度快,完全满足日常推送代码的需求
- 之后要是需要查之前的提交历史,随时在项目目录跑
git fetch --unshallow就能把所有历史记录补全,不影响推送权限
你本地只有零散的项目代码,没有旧的.git目录
- 切到放代码的文件夹,跑
git init初始化本地Git仓库 - 关联远程仓库:
git remote add origin git@github.com:你的用户名/仓库名.git - 拉取远程的分支信息:
git fetch origin - 新建并切到和远程对应的主分支:
git checkout -b main - 绑定本地分支和远程分支:
git branch --set-upstream-to=origin/main main - 跑
git reset --mixed origin/main对齐提交指针,这个命令不会删你本地现有的文件,只会把Git的记录状态和远程同步 - 之后改完代码正常提交推送就可以
提醒:操作前先把本地存的代码单独复制一份备份,避免输错命令丢文件。
内容的提问来源于stack exchange,提问作者Moomins
相关产品推荐
相关产品推荐

