直接在 GitHub 中创建文件
- 登录 GitHub 选择新建一个仓库 New repository
- 编写 Python 文件格式为 xxx.py,文件夹使用 /,编写好后提交,commit changes。
创建一个新的文件 creating a new file
- 在仓库页面上传文件
VSCode 中使用 Git 上传文件
- 在 VSCode 中打开需要上传的文件,在终端中登录 GitHub 用户名和邮箱,同时在源代码管理中初始化仓库(Initialize Repository),并写入 commit 信息。
# 登陆 GitHub 用户名
git config --global user.name "your github name"
# 登陆 GitHub 的邮箱
git config --global user.email [email protected]
# 查看当前用户名是否正确
git config --global user.name
# 查看当前邮箱是否正确
git config --global user.email
- 上传到 GitHub 库,... -> Remote -> add Remote。之后需要登录授权,最后 Publish Branch。
SSH 密钥配置(服务器 / 代码平台认证)
核心作用:实现本地与服务器、代码平台(Gitee/GitHub)的免密安全连接。
生成密钥:
# 在服务器终端执行:ssh-keygen -t rsa -C "your_email"
# 生成 RSA 密钥,一路回车(默认路径、无密码)
生成 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)
- 在终端中输入如下命令:
# 1. 初始化 Git 仓库(首次使用)
git init
# 2. 将所有文件添加到暂存区
git add .
# 3. 提交文件到本地仓库(-m 后是提交说明,必填)
git commit -m "first commit: 初始化项目"
# 4. 关联 GitHub 远程仓库(替换为你复制的仓库地址)
git remote add origin https://github.com/<username>/<repository_name>.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 建立连接。
- 若 22 端口被拦截,可修改 SSH 配置,通过 443 端口连接:
编辑 SSH 配置文件:打开 C:\Users<username>.ssh\config(无则新建)。输入以下内容:
Host github.com
Hostname ssh.github.com
Port 443

保存后重新测试 SSH 连接:
ssh -T [email protected]
连接成功后,重新执行 git push -u origin main。
- SSH 密钥未配置或失效:本地未生成 SSH 密钥,或未将公钥添加到 GitHub 账号中,导致身份验证失败。
检查本地是否有 SSH 密钥:
ls -la ~/.ssh
生成 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_github_email"
将公钥添加到 GitHub:
# 复制公钥内容:cat ~/.ssh/id_rsa.pub(Windows 可打开 C:\Users\<username>\.ssh\id_rsa.pub 文件复制)
# 登录 GitHub,进入 Settings → SSH and GPG keys → New SSH key,粘贴公钥并保存

测试 SSH 连接:
ssh -T [email protected]
可能遇到的问题:
主机密钥验证失败:Host key verification failed 是本地 SSH 客户端不信任 GitHub 服务器的身份,而不是 GitHub 不信任你的密钥。可以直接把 GitHub 的官方主机密钥写入本地的 known_hosts 文件,这样就不会再弹出交互式确认了:

echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl">>~/.ssh/known_hosts
主机密钥问题解决后,执行测试命令:
ssh -T [email protected]
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 会话会自动激活环境。


