欢迎光临
我们一直在努力

从代码提交到远程部署:GitHub 完整操作指南(解决 SSH 连接与分支冲突)

文章目录

    • 直接在github中创建文件
    • vscode中使用git上传文件
    • SSH 密钥配置(服务器 / 代码平台认证)
    • 使用git提交大文件到github
    • TMUX(服务器后台挂起程序)

直接在github中创建文件

github 地址

  • 登录github选择新建一个仓库 New repository
  • 在这里插入图片描述

  • 创建一个新的文件 creating a new file 在这里插入图片描述

  • 编写python文件格式为 xxx.py , 文件夹 使用 / ,编写好后提交,commit changes。

  • 在这里插入图片描述

  • 在仓库页面上传文件
  • 在这里插入图片描述

    vscode中使用git上传文件

  • 在vscode中打开需要上传的文件,在终端中登录Github用户名和邮箱,同时在源代码管理中初始化仓库(Initialize Repository),并写如commit信息。
  • 登陆 GitHub 用户名
    git config global user.name "you github name"
    登陆 GitHub 的邮箱
    git config global user.email youself@example.com

    查看当前用户名是否正确
    git config global user.name
    查看当前邮箱是否正确
    git config global user.email

    在这里插入图片描述

  • 上传到github库,… -> Remote -> add Remote 。 之后需要登录授权, 最后Publish Branch。
  • 在这里插入图片描述

    SSH 密钥配置(服务器 / 代码平台认证)

    核心作用:实现本地与服务器、代码平台(Gitee/GitHub)的免密安全连接。

    生成密钥:

    #在服务器终端执行:
    sshkeygen t rsa C "liu-RSA" # 生成RSA密钥,命名为happy研

    一路回车(默认路径、无密码),生成id_rsa(私钥,本地留存)和id_rsa.pub(公钥,需上传平台)。

    配置公钥到代码平台:

    复制id_rsa.pub内容,在 Gitee/GitHub 的「账号设置→SSH 公钥」中粘贴并保存。

    补充: Git+VSCode 代码管理(核心操作)—- 目标:实现代码的版本控制、分支管理、提交 / 同步。克隆远程仓库:

    #基础克隆:
    git clone <仓库SSH地址> # 从云端克隆仓库到本地
    #大仓库优化:
    git clone depth 10 <仓库地址> # 仅克隆最新10次提交,减少体积

    使用git提交大文件到github

    在vscode中上传大量文件会直接卡住,所以使用git工具上传代码到github。

    若在 GitHub 上创建新仓库 ,暂时不要勾选 Add a README file、Add .gitignore 等选项(避免和本地仓库冲突)点击 Create repository 按钮,创建完成后会跳转到仓库页面,复制页面上的仓库地址。

  • 初始化本地Git仓库并关联远程仓库,选择open Git Bash here (需要提前下载git)
  • 在这里插入图片描述

  • 在终端中输入如下命令:
  • 4# 1. 初始化 Git 仓库(首次使用)
    git init

    # 2. 将所有文件添加到暂存区
    git add .

    # 3. 提交文件到本地仓库(-m 后是提交说明,必填)
    git commit m "first commit: 初始化项目"

    # 4. 关联 GitHub 远程仓库(替换为你复制的仓库地址)
    git remote add origin https://github.com/你的用户名/仓库名.git
    // git remote add origin git@github.com:liuhaha1111/travel_socialvibe.git

    # (可选)检查远程仓库是否关联成功
    git remote v

  • 将本地代码推送到github
  • # 推送代码到 GitHub 的 main 分支(GitHub 默认分支是 main,旧版本可能是 master)
    git push u origin main

    执行后会弹出登录验证:

    • HTTPS 方式:输入 GitHub 账号密码(如果提示密码无效,需要用 GitHub 个人访问令牌(PAT)代替密码)
    • SSH 方式:需提前配置 SSH 密钥,配置后无需每次输入密码

    遇到的错误:

    如果提示 fatal: refusing to merge unrelated histories,说明远程仓库有初始文件(比如你不小心勾选了 README),可以执行:

    git pull rebase origin main # 拉取并合并远程仓库内容
    git push u origin main # 再次推送

    补充:多人协作

    多人协作时,远程代码可能被其他开发者修改,先同步再提交能避免「代码冲突」,fetch+merge方式。

    在这里插入图片描述 git fetch origin master 拉取远程代码(不合并):

    仅从 GitHub 的 master 分支拉取最新版本到本地(存储在 FETCH_HEAD 临时指针中),但不会自动合并到当前工作目录,适合先查看远程变更再决定是否合并

    git merge FETCH_HEAD 合并远程代码:

    将上一步拉取的远程最新代码(FETCH_HEAD)合并到本地当前分支,完成「同步远程」的核心操作(等价于 git pull origin master,但拆分后更可控)

    需要注意推送到的分支是master还是main:

    在这里插入图片描述

    git push u origin master

    -u 会记住默认推送关联,后续只需执行 git push 即可同步本地 master 到远程 master。


    遇到的错误:

    在这里插入图片描述 connection closed by 198.18.0.4 port 22 和 Could not read from remote repository,核心原因是SSH 连接失败。

    端口 22 被拦截:SSH 协议默认使用 22 端口,该端口可能被网络防火墙、代理或本地安全软件拦截,导致无法与 GitHub 建立连接。

    1. 若 22 端口被拦截,可修改 SSH 配置,通过 443 端口连接:

    编辑 SSH 配置文件:打开 C:\\Users\\你的用户名.ssh\\config(无则新建)。输入以下内容:

    config
    Host github.com
    Hostname ssh.github.com
    Port 443

    在这里插入图片描述

    保存后重新测试 SSH 连接:

    ssh T git@github.com

    连接成功后,重新执行 git push -u origin main。

    2. SSH 密钥未配置或失效:本地未生成 SSH 密钥,或未将公钥添加到 GitHub 账号中,导致身份验证失败。

    检查本地是否有 SSH 密钥:

    ls la ~/.ssh

    生成 SSH 密钥:

    sshkeygen t rsa b 4096 C "你的 GitHub 邮箱"

    将公钥添加到 GitHub:

    复制公钥内容:cat ~/.ssh/id_rsa.pub(Windows 可打开 C:\\Users\\你的用户名\\.ssh\\id_rsa.pub 文件复制)。
    登录 GitHub,进入 Settings → SSH and GPG keys → New SSH key,粘贴公钥并保存。

    在这里插入图片描述

    测试 SSH 连接:

    ssh T git@github.com

    可能遇到的问题:

    主机密钥验证失败:Host key verification failed 是本地 SSH 客户端不信任 GitHub 服务器的身份,而不是 GitHub 不信任你的密钥。可以直接把 GitHub 的官方主机密钥写入本地的 known_hosts 文件,这样就不会再弹出交互式确认了:

    在这里插入图片描述

    echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" >> ~/.ssh/known_hosts

    主机密钥问题解决后,执行测试命令:

    ssh T git@github.com

    GitHub 官方主机密钥可以在其官方文档中找到,这是最权威、最安全的获取方式,能避免中间人攻击风险。 github docs

    其他常用的命令

    命令注释
    git branch -M main 将本地默认分支从 master 重命名为 main(-M 是强制重命名)

    TMUX(服务器后台挂起程序)

    核心作用:服务器终端关闭后,程序仍能在后台运行。

    #安装:
    sudo apt install tmux # Ubuntu/Debian

    常用命令:

    • 创建会话:tmux new -s <会话名>(如tmux new -s train);

    • 查看会话:tmux ls;

    • 进入会话:tmux attach -t <会话名>;

    • 关闭会话:tmux kill-session -t <会话名>。

    自动激活环境:

    在服务器的~/.bashrc文件中添加环境激活命令(如conda activate base),保存后执行source ~/.bashrc,后续新建 TMUX 会话会自动激活环境。

    赞(0)
    未经允许不得转载:171主机测评 » 从代码提交到远程部署:GitHub 完整操作指南(解决 SSH 连接与分支冲突)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址