5 分钟 Git 入门:按场景学命令,小白也能上手

作者:

Git 是代码的”时光机 + 多人协作”工具。不想背命令?先装图形工具 SourceTree(sourcetreeapp.com)点鼠标就能用;也可用 VS Code 内置 Git 面板GitHub Desktop,更简单。下面按你会遇到的场景来学。

场景1:怎么拿到代码?

  • 已有本地仓库想更新 → git pull
  • 从头下载 → git clone https://xxx.git

场景2:怎么改代码?

① 切到分支 git checkout 分支名 → ② 编辑器里改 → ③ 放进暂存区 git add → ④ 提交 git commit → ⑤ 推送 git push

场景3:怎么合并代码?

① 确保暂存区干净(改动要么提交、要么 git stash 存起来)→ ② 切到目标分支 git checkout B → ③ 合并 git merge A → ④ 有冲突先解决再 git commit → ⑤ git push

场景4:合并冲突怎么办?

  • 格式化引起的大量冲突:和队友约定同一个格式化工具(如 Prettier);合并前先统一格式化并提交再合。
  • 业务代码真冲突:先排除格式化因素,再找对应代码作者确认”哪段要、哪段不要”,手动合。

场景5:推送后发现代码有错,怎么让队友拿到正确版本?

  • (不推荐)强制覆盖:通知队友先别推,本地改对后 git push --force。缺点:会丢历史,已拉取的队友要回退/重克隆。
  • (推荐)补一次提交:直接改好,再 git commit 提交一版即可。

场景6:想知道某行代码是谁、什么时候改的?

git blame 文件名:会逐行显示”这行是哪次提交、哪个人、什么时候”改的。

图形工具更直观:SourceTree / VS Code 里对着文件右键选 “Blame / 注释” 即可,不用记命令。

场景7:想对比现在和以前的代码差别?

  • 改了还没提交,看改了啥 → git diff
  • 和上一次提交对比 → git diff HEAD
  • 看某个文件的历次改动 → git log -p 文件名

    图形工具里点两个版本直接左右对比,最省事。

场景8:两个项目要同时维护同一个模块?

把这个公共模块抽成一个独立仓库,再用 子模块 git submodule add https://模块仓库.git 在两个项目里各引用一份。以后模块改了,在模块仓库提交一次,两个项目各自更新引用即可——一处修改、两处同步,不用复制粘贴。

场景9:三个月前的提交有 bug,只想回退那一部分?

别整体回退(会把后面的好代码也带没)。
– 先 git log 找到出问题的那次提交的编号;
– 只撤销那一次改动、保留历史 → git revert <提交编号>
– 只想还原某个文件到旧版本 → git checkout <提交编号> -- 文件名

场景10:只想从别的分支挑几个功能过来(不整分支合并)?

git cherry-pick <提交编号>:像”摘樱桃”一样,从别的分支挑出你要的那几次提交,单独搬到当前分支。适合”生产分支只想提前上测试分支里的某个功能”这种情况。

场景11:怎么更优雅地管理代码?

  • 分支规范main 放稳定可上线的、dev 日常开发、每个新功能开一个 feature/xxx 分支,做完再合回去。
  • 提交规范:一次提交只做一件事,提交信息写清楚”改了什么”。
  • .gitignore:把不该进仓库的(密钥、node_modules、编译产物)挡在外面。
  • 合并前先 git pull 拿最新 + 跑一遍测试,减少冲突和事故。

附:远程仓库怎么建、怎么和本地关联

① 在 GitHub / Gitee 建仓库:登录 → New repository(新建仓库)→ 填个名字 → 创建(新手建议不要勾“初始化 README”,空仓库更好关联)。

② 把本地代码推上去(在你项目文件夹里依次执行):

git init
git remote add origin https://你的仓库地址.git
git add .
git commit -m "init"
git push -u origin main

以后再改,重复”改 → git addgit commitgit push“就行。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注