【GitHub 代码仓 03】Git + GitHub 实战速查手册

简介

本手册面向日常开发场景,从零开始,按操作顺序组织。所有示例使用 .py 文件,注释简洁明了。

适用环境:Windows 10/11 + Git Bash(推荐)或 macOS/Linux 终端。

一、准备工作

1、安装 Git

  • Windows 用户:安装 Git for Windows(自带 Git Bash)

  • 验证安装:

    复制代码
    git --version

2、配置用户名和邮箱(首次使用需设置)

复制代码
git config --global user.name "你的名字"
git config --global user.email "your_email@example.com"

二、连接 GitHub(两种方式选其一)

方式 A:使用 SSH(推荐,更安全)

复制代码
# 1. 生成 SSH 密钥(一路回车用默认路径)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 2. 启动代理并添加私钥
eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519

# 3. 复制公钥内容
cat ~/.ssh/id_ed25519.pub

# 4. 登录 GitHub → Settings → SSH and GPG keys → New SSH key
#    粘贴上一步输出的整段内容,保存

# 5. 测试连接
ssh -T git@github.com

方式 B:使用 Token(HTTPS 方式)

复制代码
# 1. GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
#    创建新 token,勾选 `repo` 权限,生成后复制(只显示一次!)

# 2. 克隆时使用 token(替换 YOUR_TOKEN 和 YOUR_USERNAME)
git clone https://YOUR_TOKEN@github.com/YOUR_USERNAME/your-repo.git

三、克隆与初始化

克隆已有仓库

复制代码
# SSH 方式(推荐)
git clone git@github.com:用户名/仓库名.git

# HTTPS 方式(用 token)
git clone https://ghp_xxx@github.com/用户名/仓库名.git

初始化新项目(本地新建)

复制代码
mkdir my-project
cd my-project
git init
echo "# 我的项目" > README.md
git add README.md
git commit -m "初始提交"
# 然后在 GitHub 新建空仓库,按提示关联远程
git remote add origin git@github.com:用户名/仓库名.git
git push -u origin main

四、日常开发流程(核心)

假设你要修复两个 bug:

  • auth/login.py:修复用户邮箱为空时崩溃

  • profile/avatar.py:修复头像上传失败

步骤 1:创建修复分支

复制代码
git checkout main          # 切到主干
git pull origin main       # 拉取最新代码
git checkout -b fix        # 创建并切换到 fix 分支

步骤 2:修改代码(示例)

文件:auth/login.py

复制代码
def login(email, password):
    # 修复:邮箱为空时直接返回错误,避免后续崩溃
    if not email:
        return {"error": "邮箱不能为空"}
    # ... 其他逻辑

文件:profile/avatar.py

复制代码
def upload_avatar(file):
    # 修复:网络超时时自动重试一次
    try:
        send_to_server(file)
    except TimeoutError:
        send_to_server(file)  # 重试

步骤 3:分别提交不同文件(重要!)

复制代码
# 查看修改了哪些文件
git status

# 提交第一个修复(只包含 login.py)
git add auth/login.py
git commit -m "fix(auth): 邮箱为空时返回错误提示"

# 提交第二个修复(只包含 avatar.py)
git add profile/avatar.py
git commit -m "fix(profile): 头像上传超时自动重试"

这样 GitHub 上会显示两个独立提交,清晰对应各自功能。

步骤 4:推送分支

复制代码
# 首次推送,设置上游(加 -u)
git push -u origin fix

步骤 5:创建 Pull Request(PR)

  1. 打开 GitHub 仓库页面
  2. 点击 Compare & pull request
  3. 确认 base 分支是 main,compare 是 fix
  4. 填写描述:"修复登录邮箱校验和头像上传问题"
  5. 点击 Create pull request

合并后,建议点击 Delete branch 删除 fix 分支。

五、常用辅助操作

查看状态与差异

复制代码
# 查看哪些文件被修改
git status

# 查看具体改了什么(未暂存)
git diff

# 查看已暂存的改动
git diff --cached

# 查看某文件的改动
git diff auth/login.py

撤销操作

复制代码
# 撤销工作区修改(恢复成上次提交的样子)
git restore auth/login.py

# 撤销已暂存但未提交的文件
git restore --staged auth/login.py

# 撤销最近一次提交(保留代码在工作区)
git reset --soft HEAD~1

同步主干更新(避免 PR 冲突)

复制代码
git checkout main
git pull origin main
git checkout fix
git rebase main          # 把 fix 的提交"接"到 main 最新后面
git push --force-with-lease origin fix  # 强制推送(安全版)

解决冲突(当 rebase 或 merge 出现冲突时)

  1. 打开冲突文件,找到:

    复制代码
    <<<<<<< HEAD
    你的代码
    =======
    别人的代码
    >>>>>>> commit-id
  2. 手动编辑,保留正确部分,删除 <<<<<<< 等标记

  3. 标记解决:

    复制代码
    git add 冲突文件.py
    git rebase --continue   # 如果是 rebase
    # 或 git commit         # 如果是 merge

六、版本发布(打标签)

发布 v1.0

复制代码
git checkout main
git pull origin main

# 提交最终代码
git add .
git commit -m "feat: release v1.0"

# 打带注释的标签(正式版本推荐)
git tag -a v1.0 -m "正式发布 v1.0"

# 推送代码和标签
git push origin main
git push origin v1.0

在旧版本上修紧急 bug(如 v1.0 → v1.1)

复制代码
# 切到 v1.0(进入"分离头指针"状态)
git checkout v1.0

# 修改 bug(例如 auth/login.py)
# ... 编辑代码 ...

git add auth/login.py
git commit -m "fix: 修复 v1.0 登录安全漏洞"

# 打新标签
git tag -a v1.1 -m "v1.0 紧急修复版"

# 切回 main 并同步修复
git switch main
git cherry-pick <刚才的commit-id>   # 把修复"移植"到 main

# 推送
git push origin main
git push origin v1.1

七、清理与查看

删除文件/文件夹

复制代码
# 删除文件
git rm config.json
git commit -m "删除配置文件"
git push origin main

# 删除文件夹
git rm -r old_module/
git commit -m "移除旧模块"
git push origin main

查看历史

复制代码
# 简洁日志
git log --oneline

# 查看谁改了某行代码
git blame auth/login.py

清理临时文件

复制代码
# 预览要删的文件
git clean -n

# 删除未跟踪的文件(如 .pyc、日志等)
git clean -fd

八、常见问题速查

问题 命令
忘记加 -u 下次 git push -u origin 分支名 补上即可
提交信息写错了? git commit --amend -m "新信息"(未推送时)
想临时保存修改去切分支? git stash → 切分支 → git stash pop
查看远程地址? git remote -v
强制推送? git push --force-with-lease(比 --force 安全)

Github文档 | Github中文网

About GitHub

相关推荐
mCell8 小时前
如何零成本搭建个人站点
前端·程序员·github
艺杯羹15 小时前
Git版本控制深度复盘:从入门到精通的完整指南
git·wpf·版本控制·git学习·git复盘
我怎么又饿了呀15 小时前
如何上传本地文件到github仓库中入门教学
github
Jingzhou15 小时前
基于 AKShare 金融数据做了一个轻量级的金融研究 Agent
后端·github
菩提小狗16 小时前
第7天:信息打点-资产泄漏&CMS识别&Git监控&SVN&DS_Store&备份|【小迪安全】web安全|渗透测试|网络安全-2021
git·安全·svn
淘矿人17 小时前
[特殊字符] 别再手动写提示词了!Claude Skills 10分钟入门,效率暴涨200%,Token狂省78%
人工智能·vscode·python·pycharm·github·文心一言·ai编程
Ghost Face...18 小时前
嵌入式Linux开发Git实战:从认证到Gerrit推送
linux·git·elasticsearch
逛逛GitHub19 小时前
GitHub 上狂揽 1.3 万 Star!港大开源的轻量版 Clawdbot。
github
云雾J视界20 小时前
当Agent接管代码后:产品经理的终极价值,是定义AI无法感知的“恐惧”与“爽点”
github·openai·copilot·ai产品经理·碳基情绪·硅基概率