Git 和 GitHub:(七)将本地新建仓库与 GitHub 远程仓库关联起来(SSH)

上一篇 下一篇
在本地新建仓库并进行一次提交

目 录


将本地新建仓库与 GitHub 远程仓库关联起来(SSH)

场景:已经在本地创建了一个 Git 仓库,并进行了初始提交【实现上一篇的内容】,但是还没有关联 GitHub 仓库

之所以使用 SSH,主要是企业再用 GitLab 管理代码的时候,基本都是用 SSH 协议

1)关联一个空仓库

  1. 在 GitHub 上创建一个新仓库

    • 登录 GitHub 账号:https://github.com,进入首页

    • 点击右上角 + 号,选择 【New repository】

    • 填写仓库名称,其他选项可保持默认(本地仓库中有 README 了, "Add README" 就不要选 ON )

    • 点击 【Create repository】,然后会看到类似如下的页面,其中包含远程仓库地址(HTTPS 或 SSH 格式,默认展示 HTTPS 的)

    • 如果上一步点完【Create repository】之后,没有跳到 URL 界面(首次在github上创建才会自动跳到),点击界面中【code】

  2. 将本地仓库与 GitHub 远程仓库关联

    • 回到本地 Git Bash,执行以下两个命令其中之一(替换为实际仓库地址):

      bash 复制代码
      # 添加远程仓库地址(origin 是默认的远程仓库别名)(HTTPS格式)
      git remote add origin https://github.com/Mr-L-Xiao/my-project.git
      
      # 添加远程仓库地址(origin 是默认的远程仓库别名)(SSH格式,推荐长期使用)
      git remote add origin git@github.com:Mr-L-Xiao/my-project.git
  3. 推送本地代码到 GitHub

    GitHub 从 2020 年起将默认分支名称从 master 更改为 main,如果你的本地默认分支名是 master,那么就需要先重命名分支:

    bash 复制代码
    git branch -M main

    然后再推送本地代码到 main 分支

    bash 复制代码
    # 推送到 main 分支(GitHub 默认主分支通常是 main)
    git push -u origin main

    如果使用的是 SSH 格式的 GitHub 远程仓库地址,首次连接时会有安全验证提示,并且要求你添加 SSH 密钥:

    上述内容表示:Git 无法通过 SSH 向 GitHub 认证你的身份,即 SSH 密钥未正确配置或未添加到 GitHub 账号

    按照下一步操作来即可 →

  4. (补充操作)添加 SSH 密钥到 GitHub 账号,完成验证

    • 第一步:检查是否已有 SSH 密钥

      bash 复制代码
      ls -al ~/.ssh

      如果回复是这样的:

      说明本地还没有生成 SSH 密钥对,当前目录中只有 known_hosts 文件,这是之前输入 yes 确认 GitHub 主机指纹时自动生成的,但缺少关键的两个文件:① 私钥文件:如 id_rsaid_ed25519;② 公钥文件:如 id_rsa.pubid_ed25519.pub

    • 第二步:使用下方指令生成新的 SSH 密钥对(推荐 ED25519),例如

      bash 复制代码
      ssh-keygen -t ed25519 -C "xxxxxxxxxx@qq.com"

      然后用指令查询公钥:

      bash 复制代码
      $ cat ~/.ssh/id_ed25519.pub
    • 第三步:复制公钥,并将其添加到 GitHub

    • 第四步:测试 SSH 连接

      bash 复制代码
      ssh -T git@github.com

      如果回复下列内容,则表示 SSH 配置成功:

      复制代码
      Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
    • 有关是否需要 "启动 ssh-agent 并添加私钥" ,可以按需执行

  5. 再次推送本地代码到 GitHub

    bash 复制代码
    git push -u origin main

    就会看到推送成功

    输出解读(参考参考就行):

    复制代码
    Enumerating objects: 3, done.          			← 扫描要推送的文件(共3个对象)
    Counting objects: 100% (3/3), done.    			← 计算进度完成
    Writing objects: 100% (3/3), ...       			← 数据写入完成
    Total 3 (delta 0), reused 0 ...        			← 总共传输3个对象
    To github.com:Mr-L-Xiao/Test-Git-GitHub-One.git
     * [new branch]      main -> main      			← 在GitHub创建了新分支 main
    branch 'main' set up to track 'origin/main'. 	← 本地main分支已关联远程

    然后在 GitHub 上就能看到推送了

  6. 后续推送只需简单命令

    bash 复制代码
    git add .
    git commit -m "更新说明"
    git push  # 不需要再加 -u origin main

2)关联一个非空仓库

比如说在 Github 上创建仓库的时候,勾选了 README,这个仓库就不是空仓库

那么要在 git push -u origin main 这一步之前先拉取合并:

bash 复制代码
# 拉取远程内容,加上 --allow-unrelated-histories 因为两边历史无关
git pull origin main --allow-unrelated-histories
# 回车之后会弹出编辑窗口,一般直接默认,按ESC之后,输入:wq回车退出即可

# 解决可能的冲突(如果有)
# 然后再推送
git push -u origin main

然后内容就变成了本地仓库和远程仓库的合集。

完整的 git 流程是:

bash 复制代码
# 初始化 Git 仓库
git init

# 添加所有文件
git add .

# 提交
git commit -m "first commit"

# 设置分支名为 main(GitHub 新建仓库默认分支通常是 main)
git branch -M main

# 拉取远程内容,加上 --allow-unrelated-histories 因为两边历史无关
git pull origin main --allow-unrelated-histories

# 解决可能的冲突(如果有)
# 然后再推送
git push -u origin main

相关推荐
fthux1 小时前
GitZip Pro:给GitHub仓库“瘦身”的魔法剪刀手
人工智能·chrome·ai·语言模型·开源·github·open source
u1301302 小时前
GitHub 热榜项目:周榜(2026-07-26)
github
逛逛GitHub3 小时前
这个开源的 Skills 让 Codex 帮你女朋友管理穿搭,太有意思了~
github
晨汐丶3 小时前
GitHub 上全是 Agent 项目,但你怎么知道哪个真的靠谱?我写了一个分析器
github
流量猎手4 小时前
GitHub 使用说明
大数据·elasticsearch·github
炸膛坦客8 小时前
Git 和 GitHub:(六)在本地新建仓库并进行一次提交
git·github
HelloGitHub11 小时前
《HelloGitHub》第 124 期
开源·github
徐小夕1 天前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
维基框架1 天前
GitHub重构漏洞赏金计划 向AI批量报告说不
人工智能·重构·github