技术分享

Git 新手实战:从第一次提交到安全撤销的可恢复工作流

从初始化仓库、阅读差异、分支开发到安全撤销,建立一套每一步都可验证、出错后可恢复的 Git 日常工作流。

TY
Tycho
技术博主
• 2026-09-23 • 9 分钟阅读 • 3 次浏览
Git 新手实战:从第一次提交到安全撤销的可恢复工作流

Git 最难的不是记住命令,而是知道当前改动在哪里、下一条命令会改变什么、操作后如何验证。本文用一个最小项目串起日常流程,并优先选择可恢复的命令。

学习目标:完成一次提交、创建功能分支、检查差异,并能分别撤销工作区修改、暂存内容和已发布提交。

一、准备环境与测试目录

先确认 Git 可用。示例适用于 Git 2.23 及以上版本,因为会使用更清晰的 git switch 与 git restore。

git --version
mkdir git-practice
cd git-practice
git init
git config user.name "Your Name"
git config user.email "you@example.com"

验证:执行 git status,应看到当前位于默认分支,并且“尚无提交”。如果这是团队项目,姓名和邮箱应与代码托管平台一致。

二、完成第一次可追踪提交

  1. 创建 README.md,写入项目目标。
  2. 用 git diff 查看尚未暂存的修改。
  3. 暂存后,用 git diff --staged 再次确认将要提交的内容。
printf '# Git Practice\n\nA recoverable workflow.\n' > README.md
git status --short
git diff
git add README.md
git diff --staged
git commit -m "docs: add project readme"
git log --oneline --decorate -5

提交前检查 --staged 差异是一个重要习惯:它能防止调试日志、密码或无关文件进入历史。

三、在独立分支开发

git switch -c feature/notes
printf '\n## Notes\n- Keep commits small.\n' >> README.md
git add README.md
git commit -m "docs: add workflow notes"
git switch -
git log --oneline --all --graph --decorate

git switch - 会回到上一个分支。最后一条命令应显示两条分支线,功能提交只存在于 feature/notes。

四、按改动所在位置安全撤销

场景命令结果
文件改坏但未暂存git restore 文件恢复到索引中的版本
误把文件加入暂存区git restore --staged 文件取消暂存,保留工作区内容
已提交且可能已共享git revert 提交号生成反向提交,不改写历史
# 演练取消暂存
printf 'temporary\n' > debug.log
git add debug.log
git restore --staged debug.log
git status --short

# 演练撤销工作区改动
git restore README.md

不要把 git reset --hard 当作普通清理命令:它可能同时丢弃索引和工作区内容。只有明确知道目标提交、确认没有未保存工作,并有备份时才考虑使用。

五、提交前的固定检查清单

  • git status --short:确认文件范围。
  • git diff:检查未暂存修改。
  • git diff --staged:检查即将提交的最终内容。
  • git log --oneline --graph --decorate -10:确认提交落在正确分支。

常见问题与恢复

提交到了错误分支

如果提交尚未推送,可先创建正确分支保存它:git branch feature/correct。随后再根据团队规则处理原分支;不要急着删除或硬重置。

不知道某条命令会做什么

先执行 git status 并复制仓库做演练。Git 的可恢复性来自“小提交、先看差异、共享历史用 revert”。

官方资料

TY

Tycho

热爱分享技术知识,帮助开发者成长。

评论 (0)

评论功能当前已关闭
暂无评论,快来抢沙发吧!