4、Git基础操作:git init、git clone、git add、git commit、git status、git log

说实话,Git 的命令很多,但真正每天都要用的,其实就那么几个。

我见过不少新人,一上来就背几十个命令,结果真正干活时反而手忙脚乱。

今天这六个命令,是你必须刻在脑子里的。它们覆盖了从「创建仓库」到「提交历史」的完整链路。

4.1 git init:从零开始

你要在一个新项目里用 Git 了,第一步就是 git init

这个命令会在当前目录下创建一个隐藏的 .git 文件夹。说白了,就是给这个目录装上「版本控制引擎」。

mkdir my-project
cd my-project
git init

跑完之后,你会发现目录里多了个 .git 文件夹。别手贱去删它,删了 Git 就不认这个项目了。

我的习惯:每次新建项目,我都会先 git init,哪怕只写了一行代码。早初始化,早安心。

4.2 git clone:拿来主义

如果项目已经存在,比如从 GitHub 或 GitLab 上拉下来,那就用 git clone

这个命令会做三件事:下载代码、创建 .git 目录、自动关联远程仓库。

git clone https://github.com/example/project.git

克隆完成后,你直接就能 git log 看历史,git checkout 切分支。省心。

注意:如果你用的是 SSH 协议,记得先配好 SSH Key。我曾经因为忘了配 Key,卡在克隆这一步整整十分钟,后来才发现是权限问题。

4.3 git status:你的「照妖镜」

这个命令我一天能敲几十次。它告诉你:哪些文件改了、哪些还没跟踪、哪些已经暂存了。

git status

输出会分成几个区域:

  • Changes not staged: 文件改了,但还没 git add
  • Changes to be committed: 已经 git add 了,等着 git commit
  • Untracked files: 新文件,Git 还没管它

你想想看,如果不先看一眼 git status,你根本不知道当前仓库是什么状态。我见过有人直接 git add . 然后 commit,结果把不该提交的配置文件也带上去了。

我的经验:每次 commit 之前,先跑一遍 git status。确认只有你想提交的文件,再执行下一步。

4.4 git add:把改动「装进篮子」

git add 的作用是把文件从工作区放到暂存区。你可以理解为:先挑出要提交的改动,打个包。

git add index.html          # 添加单个文件
git add src/                # 添加整个目录
git add .                   # 添加所有改动(慎用)

我个人建议,尽量用精确的路径,少用 git add .。为什么呢?因为一不小心就会把临时文件、日志文件、甚至密码文件给加进去。

我曾经踩过的坑:有一次我 git add . 之后直接 commit,结果把本地的 .env 配置文件也提交上去了。还好发现得早,赶紧用 git rm --cached 撤了回来。从那以后,我再也不敢无脑 git add . 了。

4.5 git commit:拍一张「快照」

这是 Git 最核心的操作。每次 commit,就是给当前项目状态拍一张快照。

git commit -m "修复登录页面的样式问题"

关于 commit message,我有几个建议:

  • 用英文或中文都行,但团队内要统一
  • 第一行不超过 50 个字符
  • 说清楚「做了什么」,而不是「做了什么文件」

举个例子:

❌ 不好的写法 ✅ 好的写法
修改了 a.js 修复用户头像上传后无法显示的问题
更新代码 重构订单列表的排序逻辑
小技巧:如果你觉得 -m 写不下,可以不加 -m,直接敲 git commit,会打开编辑器让你写多行信息。我习惯用这种方式写详细的 commit 说明。

4.6 git log:翻翻「历史记录」

想看看之前都干了什么?用 git log

git log

默认输出会显示:commit 的哈希值、作者、日期、提交信息。

如果你觉得输出太啰嗦,可以用一些参数精简一下:

git log --oneline          # 一行一个 commit
git log --graph            # 显示分支图
git log -5                 # 只看最近 5 条

我个人最常用的是 git log --oneline --graph,一眼就能看出分支合并的脉络。

避坑指南:我曾经在排查 bug 时,想看看某个文件是什么时候被改的。用 git log -- filename 就能只看这个文件的提交历史,非常实用。

小结一下

这六个命令,构成了 Git 日常操作的闭环:

  1. git initgit clone:开始一个仓库
  2. git status:看看当前状态
  3. git add:把改动放进暂存区
  4. git commit:拍一张快照
  5. git log:回顾历史

嗯,就这么简单。但越是简单的命令,越要养成好习惯。你想想看,如果每次 commit 前都看一眼 git status,能少踩多少坑?

下一章,我会聊聊分支操作。到时候你会发现,今天学的这些基础命令,在分支世界里同样管用。