Git使用指南

突然发现自己的博客忘记总结Git,这里总结一下Git的常用命令。

Git 常用命令全解析:从入门到精通

一、为什么你需要这篇文章

Git 官方文档 1800+ 页,Stack Overflow 问题 30 万+;
但日常开发真正高频的命令不到 30 条。
本文用“开发时间轴”组织命令,每条给出“场景 + 记忆口诀”,让你 5 分钟建立肌肉记忆。

二、开发时间轴:一条命令一张图

阶段命令一句话记忆
1. 上车git clone <url>“先上车后补票”,仓库拖下来就能跑
2. 同步git pull“上班先打卡”,把同事代码拖回来
3. 开分支git switch -c feat/xxx“平行宇宙”,不影响主线
4. 写代码git add .“拍照存盘”,放进暂存区
5. 提交git commit -m "feat: 描述"“写标题”,生成一次历史
6. 推送git push -u origin feat/xxx“第一次寄快递”,填好收件人
7. 合主线PR → git merge“过安检”,Code Review 后上线
8. 清理git branch -d feat/xxx“完工扫地”,删除临时分支

三、从零开始将本地文件夹上传到 GitHub 仓库

步骤 1:准备工作

  1. 安装 Git:
    • 确保你的电脑上已经安装了 Git。如果没有,可以从 Git 官方网站 下载并安装。
  2. 配置 Git:
    • 打开终端(Linux/macOS)或命令提示符(Windows),运行以下命令配置你的 Git 用户名和邮箱:
      1
      2
      git config --global user.name "Your GitHub Username"
      git config --global user.email "your.email@example.com"
  3. 创建 GitHub 账户:
    • 如果你还没有 GitHub 账户,前往 GitHub 注册一个账户。

步骤 2:创建一个新的 GitHub 仓库

  1. 登录到你的 GitHub 账户。
  2. 点击右上角的 “+” 按钮,选择 “New repository”(新建仓库)。
  3. 填写仓库信息:
    • Repository name(仓库名称):输入一个名称,例如 My-First-Repository。
    • Description(描述):可选,简要描述你的仓库。
    • Public(公开):选择 Public(公开)或 Private(私有),公开仓库任何人都可以看到,私有仓库只有你和授权用户可以访问。
    • Add a README file(添加 README 文件):可选,勾选后 GitHub 会自动生成一个 README 文件。
  4. 点击 “Create repository”(创建仓库)。

步骤 3:将本地文件夹初始化为 Git 仓库

  1. 打开终端(Linux/macOS)或命令提示符(Windows)。
  2. 导航到你的本地文件夹:
    • 使用 cd 命令切换到你的项目文件夹。例如:
      1
      cd /path/to/your/folder
      例如:
      1
      cd ~/Documents/My-Project
  3. 初始化 Git 仓库:
    1
    git init
    你会看到类似以下输出:
    1
    Initialized empty Git repository in /path/to/your/folder/.git/

    步骤 4:添加文件到 Git 仓库

  4. 将文件夹中的所有文件添加到暂存区:
    1
    git add .
    或者,添加特定文件:
    1
    git add filename
  5. 查看暂存区状态:
    1
    git status
    输出应类似于:
    1
    2
    3
    4
    5
    On branch master
    Changes to be committed:
    (use "git reset <file>..." to unstage)
    new file: file1.txt
    new file: file2.txt

    步骤 5:提交更改

  6. 提交更改到本地仓库:
    1
    git commit -m "Initial commit"
    -m 参数用于添加提交信息(message)。
  7. 查看提交历史:
    1
    git log
    你会看到类似以下内容:
    1
    2
    3
    4
    5
    commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6
    Author: Your Name <your.email@example.com>
    Date: Wed Mar 2 14:30:00 2023 +0800

    Initial commit

    步骤 6:关联远程仓库

  8. 获取你的 GitHub 仓库的远程 URL:
    • 在 GitHub 仓库页面,点击 “Code” 按钮,复制 HTTPS 或 SSH 地址。例如:
      1
      https://github.com/your-username/your-repository.git
  9. 添加远程仓库:
    1
    git remote add origin https://github.com/your-username/your-repository.git
  10. 验证远程仓库:
    1
    git remote -v
    输出应类似于:
    1
    2
    origin  https://github.com/your-username/your-repository.git (fetch)
    origin https://github.com/your-username/your-repository.git (push)

    步骤 7:推送更改到 GitHub

  11. 推送本地提交到远程仓库的主分支:
    1
    git push -u origin main
    如果你的默认分支是 master,运行:
    1
    git push -u origin master
  12. 如果是第一次推送,可能会提示你输入 GitHub 用户名和密码(或个人访问令牌)。

步骤 8:验证上传

  1. 登录到你的 GitHub 仓库页面。
  2. 你会看到刚刚推送的文件已经出现在仓库中。
  • 完整示例
    假设你的本地文件夹路径是 /home/user/Documents/My-Project,以下是完整的命令流程:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 导航到本地文件夹
    cd /home/user/Documents/My-Project

    # 初始化 Git 仓库
    git init

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

    # 提交更改
    git commit -m "Initial commit"

    # 添加远程仓库
    git remote add origin https://github.com/your-username/your-repository.git

    # 推送更改到远程仓库
    git push -u origin main

常见问题

  1. 提示权限不足:
    ○ 确保你已经将 GitHub 的 SSH 密钥添加到账户中,或者使用 HTTPS 地址时输入正确的用户名和密码。
  2. 网络问题:
    ○ 如果网络连接不稳定,可以尝试使用 VPN 或代理。
  3. 分支名称问题:
    ○ 如果你的默认分支是 main 而不是 master,请确保使用正确的分支名称。

四、10 大场景速查表

1. 初始化 & 克隆

1
2
git init                # 把当前目录变仓库
git clone https://github.com/user/repo.git

克隆后默认远程叫 origin,主分支叫 main(或 master)。

2. 日常同步

1
2
git pull                # 拉取并自动合并
git fetch && git rebase origin/main # 线性历史,避免 merge 波浪

口诀:“能 rebase 就不 merge,历史像火车轨。”

3. 分支操作

1
2
3
4
git switch -c feat/xxx      # 新建并切换(Git 2.23+)
git branch -a # 查看所有分支
git branch -m old new # 重命名分支
git push origin --delete b # 删除远程分支

4. 快照三板斧

1
2
3
4
git status          # 看状态(必打)
git add . # 所有改动加入暂存区
git restore a.txt # 把 a.txt 撤回工作区
git commit -m "style: 删除多余空行"

提交规范参考 Conventional Commits
type: subject 类型小写,常用 feat/fix/docs/style/refactor/test/chore

5. 第一次推送

1
git push -u origin feat/xxx

-u 等价于 --set-upstream,只做一次,以后直接 git push

6. 回滚与急救

场景命令副作用
改坏一个文件git restore file无提交记录
改坏一次提交git reset --soft HEAD~1保留改动,重回暂存区
改坏已 pushgit revert <commit>生成新提交,公共历史安全

救命稻草:
git reflog # 90 天内任意提交都能找回

7. 临时中断(stash)

1
2
3
git stash push -m "WIP: 支付接口"
git stash list
git stash pop # 恢复并删除

场景:代码写到一半,必须切分支修线上 bug。

8. 标签发布

1
2
3
git tag v1.0.0                        # 轻量标签
git tag -a v1.0.0 -m "发布正式版" # 附注标签
git push origin v1.0.0 # CI/CD 常用触发条件

口诀:“ tag 即里程碑,永不移动。”

9. 信息查询

1
2
3
git log --oneline --graph --all  # 地铁图一眼看完
git diff HEAD~1 # 本次改了啥
git blame app.js # 逐行查凶手

10. 高级技巧(可选)

1
2
3
git rebase -i HEAD~3        # 合并/改写给定提交
git cherry-pick <commit> # 只摘一个提交到当前分支
git bisect start bad good # 二分定位引入 bug 的提交

五、一张思维导图(文字版)

1
2
3
clone → pull → branch → (code) → add → commit → push → PR → merge → tag → delete branch
↑ ↓
stash/rebase log/diff/status

六、常见坑 3 连

  1. “为什么我 push 被拒绝?”
    git pull → 处理冲突 → 再 git push

  2. “reset 后代码消失了?”
    git reflog 找 Hash,再 git reset --hard <Hash> 恢复。

  3. “merge 后历史乱成蜘蛛网?”
    个人分支用 rebase,合并到主分支前强制线性。

七、5 分钟练习路线

  1. git clone https://github.com/github/gitignore.git
  2. 新建分支 my-test
  3. 任意改一行 → add → commit → push
  4. 提 Pull Request(GitHub 网页)
  5. 合并后删除分支,收工。

八、总结

记住“三看三提三回滚”就够用:

三看三提三回滚
statusaddrestore
logcommitreset
diffpushrevert