Git Commands 完全指南

大神们,我想请教下,Git Commands 完全指南
最新回答
脸滚键盘抬头懵

2026-07-19 09:28:31

Git Commands 完全指南

本文提供一条“从个人到团队”的 Git 进阶学习路径,结合实际案例逐段拆解核心命令与流程。

1. 仓库初始化:建立受控环境

创建仓库的两种常见路径:

  • 本地从零开始:

    git init

    在干净目录下执行即可创建 .git 隐藏文件夹。建议初始化后立即补充 .gitignore 与 README.md 文件。

  • 从远程克隆现有项目:

    git clone git@github.com:org/project.git

    建议默认使用 SSH 地址以减少频繁输入密码的麻烦。

实战经验:初始化阶段最容易忽略用户信息配置。完成以下命令,后续提交记录才不会出现匿名作者:

git config --global user.name "Your Name"git config --global user.email "you@email.com"

2. 基础操作:驱动提交循环

日常提交遵循“三段式”:

  • 跟踪文件:

    git status 观察脏文件(未暂存的文件)。

    git add <file> 将目标文件放入暂存区。

  • 撰写提交:

    git commit -m "feat: 初始化项目结构"

    当提交信息涉及多行描述时,直接运行 git commit 进入编辑器更利于书写详细说明。

  • 复盘历史:

    git log --oneline --graph

    让历史结构一目了然。

此外:

  • git rm <file> 用于安全删除文件并保留历史轨迹。
  • git mv <old-name> <new-name> 用于安全重命名文件并保留历史轨迹。

3. 分支管理:隔离实验与上线

  • 创建与切换:

    git branch feature/logingit switch feature/login

    新版 git switch 比传统 git checkout 更语义化。

  • 保持主干干净:

    主分支(main/master)只接收经过 Review 的合并。

    日常开发在功能分支展开,然后通过 Pull Request 或 git merge --no-ff 回归主干,补充合并节点。

  • 建议:

    当多人并行时,推荐使用【主干 + 功能分支 + 预发布分支】的三层结构,既能快速回滚,又便于持续交付。

4. 远程协作:推送与拉取的礼仪

  • 绑定远程仓库:

    git remote add origin git@...
  • 推送策略:

    第一次推送使用:

    git push -u origin feature/login

    之后在分支里直接 git push 即可。

  • 多人协作提示:

    保持本地分支与远程同名,避免 git push origin HEAD:review/login 这类“临时分支”让同事困惑。

当团队需要设置多个远程时(如同时推送到 GitHub 与公司内网),可使用以下命令追加:

git remote set-url --add origin git@gitlab...

5. 同步更新:远程改动的本地落地

  • 拉取并合并:

    git pull --ff-only

    确保只有快进合并,历史保持线性。

  • 变基保持整洁:

    git fetch origingit rebase origin/main

    适合保持个人分支历史紧凑,但冲突处理步骤需要耐心。

若团队遵循“先 fetch,再 rebase,再 push --force-with-lease”,可以最大程度降低冲突风险,同时避免误覆盖他人提交。

6. 撤销重置:错误的补救清单

  • 最近一次提交写错信息:

    git commit --amend
  • 撤销工作区修改:

    git restore <file>
  • 重置到指定提交:

    git reset --hard <commit>

    使用前务必确认不会丢失需要保留的内容;若不确定,可先 git reset --soft 或 git revert。

建议:在重大操作前执行以下命令做临时锚点,给自己留后路:

git tag backup/$(date +%Y%m%d-%H%M)

7. 查看比较:让变更可追溯

  • git diff 对比当前工作区与暂存区。
  • git diff --cached 查看即将提交的内容。
  • git log -p 与 git blame 用于定位具体变更与责任人。

提示:配合 git show <tag> 可以快速查看某个里程碑的关键信息。

8. 暂存恢复:处理中断

  • git stash push -m "修复支付回调" 保存当前进度。
  • git stash list 查看所有暂存快照。
  • git stash pop 恢复同时删除 stash;git stash apply 恢复但保留备份。

建议:遇到紧急修复需求时,先 stash 再切换分支是最稳妥的流程。

9. 标签管理:给历史加锚点

  • git tag v1.2.0 创建轻量标签。
  • git tag -a v1.2.0 -m "Release" 创建含注释的标签,适合正式发布。
  • git push origin v1.2.0 共享给团队。

个人偏好:使用语义化版本号,并搭配 git tag release/2025-10 等平行序列,用于对齐业务档期。

学习建议

  1. 命令组合化:

    把 git status、git add、git commit 整合进脚本或使用命令别名,减少重复工作量。

  2. 图形化工具辅助:

    SourceTree、Tower 或 VS Code Git 面板能降低认知负担,但核心理念仍建立在命令理解之上。

  3. 团队约定:

    书面化提交信息规范(如 Conventional Commits)与分支命名约定,能让 Git 历史成为团队的沟通载体。

实际上日常使用的时候,Git 命令常用的就那几个,先总体看完所有知识卡片的内容,实际使用的时候,秉承着需要什么再去查什么的原则即可。