Git 基本操作(一文讲透)

Git 基本操作:从零开始掌握代码版本管理

你有没有遇到过这样的场景?写了一整天的代码,结果不小心删掉了关键功能,或者改错了某个文件,却找不到原来的版本。这时候,你会不会觉得,如果能“时光倒流”该多好?其实,Git 基本操作正是解决这类问题的利器。

Git 是目前最流行的分布式版本控制系统,它能记录每一次代码变更,让你随时回到任意一个历史状态。无论你是独立开发,还是团队协作,掌握 Git 基本操作都是程序员的必备技能。

今天,我们就从最基础的命令开始,一步步带你走进 Git 的世界,让你不再为“改错代码”而焦虑。


初始化仓库与配置环境

在使用 Git 之前,你需要先初始化一个仓库(repository),并配置一些基本信息。这就像给你的代码“建一个档案馆”。

打开终端,进入你要管理的项目目录,执行以下命令:

git init

这条命令会在当前目录下创建一个 .git 隐藏文件夹,里面存放了 Git 的所有元数据,比如提交历史、分支信息等。此时,你的项目就变成了一个 Git 仓库。

接下来,配置你的用户信息,这是每次提交时都会用到的“签名”:

git config user.name "你的名字"
git config user.email "你的邮箱"

例如:

git config user.name "张三"
git config user.email "zhangsan@example.com"

💡 提示:这些配置是全局的,如果你希望只对当前项目生效,可以加上 --local 参数,比如 git config --local user.name "张三"

配置完成后,你可以用下面的命令查看当前的配置:

git config --list

这条命令会输出所有已配置的信息,确认无误后,你的 Git 环境就准备好了。


查看状态与添加文件

当你修改了代码文件,Git 并不会自动记录这些变化。它需要你明确告诉它:“这个文件我改了,要记下来”。

首先,使用 git status 命令查看当前工作区的状态:

git status

输出示例:

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

这条命令告诉你:README.md 文件被修改了,但还没有被“暂存”(staged)。

🌟 比喻:你可以把工作区想象成一个“正在装修的房子”,你刚刷完墙,但还没通知物业(Git)来登记。git status 就是物业的检查员,告诉你“房子有变动了”。

要让 Git 记录这个修改,你需要使用 git add 命令:

git add README.md

这一步叫做“暂存”,意思是把文件的变更放入一个“待提交清单”中。你可以一次性添加多个文件:

git add .   # 添加当前目录下所有修改过的文件

⚠️ 注意:git add . 会包含新增、修改、删除的所有文件,但不会包含被忽略的文件(如 .gitignore 中定义的)。

再次运行 git status,你会发现状态变了:

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

说明文件已经进入“待提交”状态,下一步就是正式提交。


提交变更到版本历史

当文件被暂存后,就可以执行提交操作了。提交是 Git 中最重要的一步,它会创建一个“快照”,记录下当前代码的状态。

使用以下命令提交:

git commit -m "更新 README 说明文档"
  • -m 参数用于指定提交信息(message),这是必须的。
  • 提交信息要尽量清晰,比如“修复登录页面按钮样式”、“添加用户注册功能”等。

✍️ 提示:好的提交信息能让团队成员快速理解每一次变更的目的。不要写“修改了代码”或“更新一下”这种模糊信息。

提交成功后,你会看到类似输出:

[main 1a2b3c4] 更新 README 说明文档
 1 file changed, 2 insertions(+), 1 deletion(-)

这表示:你成功提交了一个新的版本,文件有 1 个变更,增加了 2 行,删除了 1 行。

现在,你的代码历史中就多了一个“版本快照”。你可以随时通过 git log 查看历史记录:

git log --oneline

输出示例:

1a2b3c4 更新 README 说明文档
d5e6f7a 初始提交

每行代表一个提交,前面的字母串是提交的唯一 ID,你可以用它来恢复特定版本。


理解工作区、暂存区与仓库

为了更好地掌握 Git,我们来理解三个核心概念:工作区暂存区仓库

区域 作用 类比
工作区 你实际编辑代码的地方 你正在装修的房子
暂存区 暂存修改的文件,准备提交 物业登记的变更清单
仓库 存储所有提交历史的数据库 档案馆的永久记录

整个流程可以这样理解:

  1. 你在工作区修改了文件(比如 main.js)。
  2. 使用 git add main.js 把修改放入暂存区。
  3. 使用 git commit 把暂存区的内容提交到仓库,生成一个新版本。

🔄 这个流程就像装修:先改墙(工作区),再报备给物业(暂存区),最后由物业归档(仓库)。

你也可以撤销未暂存的修改:

git restore main.js

这条命令会丢弃工作区的修改,恢复到上一次提交的状态。


分支管理:并行开发的秘密武器

在实际项目中,你可能需要同时开发多个功能。比如:一个分支用于修复 bug,另一个分支用于开发新功能。

Git 的分支功能非常强大,它让你可以“分兵作战”,互不影响。

创建并切换分支

git branch feature-login   # 创建名为 feature-login 的分支
git checkout feature-login # 切换到该分支

或者一步完成:

git switch -c feature-login

💡 switchcheckout 的简化版本,推荐使用。

现在你在 feature-login 分支上,所有修改都只影响这个分支,不会影响 main 分支。

合并分支

当你完成登录功能开发,可以将它合并回主分支:

git switch main        # 切回 main 分支
git merge feature-login # 将 feature-login 分支合并进来

Git 会自动合并两个分支的变更。如果无冲突,合并成功;如果有冲突,Git 会提示你手动解决。

⚠️ 冲突处理:Git 会在文件中标记冲突部分,你需要手动编辑文件,删除 <<<<<<< HEAD>>>>>>> feature-login 之间的内容,保留正确的代码,然后 git addgit commit


查看历史与回退版本

有时候,你可能会不小心提交了错误的代码。别慌,Git 提供了多种方式“回退”。

查看提交历史

git log --graph --oneline --all

--graph 会显示分支结构,--all 包括所有分支的历史。

回退到上一个版本

git reset --hard HEAD~1
  • HEAD~1 表示上一个提交。
  • --hard 表示彻底删除后续的变更(慎用!)。

如果你只是想撤销最后一次提交,但保留代码修改,可以:

git reset --soft HEAD~1

这样提交被撤销,但文件仍处于暂存状态,你可以重新 git addgit commit


实际案例:从零开始一个项目

假设你要开发一个简单的 Todo 列表应用。

  1. 创建项目文件夹:mkdir todo-app
  2. 进入目录并初始化 Git:cd todo-app && git init
  3. 创建 index.htmlscript.js 文件。
  4. 添加并提交初始代码:
git add .
git commit -m "初始化项目结构"
  1. 开发新功能,比如添加“添加任务”按钮:
git add index.html
git commit -m "添加任务输入框和按钮"
  1. 创建新分支开发“删除任务”功能:
git switch -c feature-delete
  1. 在该分支上完成开发,提交后合并回主分支。

整个过程清晰可控,团队协作也变得简单。


总结:掌握 Git 基本操作,提升开发效率

Git 基本操作看似简单,但却是每个开发者必须掌握的核心技能。从初始化仓库、查看状态、暂存文件、提交变更,到分支管理和版本回退,每一步都为你提供了强大的代码保护机制。

当你熟练使用这些命令,你就不再害怕“改错代码”或“丢失文件”。Git 不仅是版本管理工具,更是你开发过程中的“安全带”。

记住:

  • git status 查看状态
  • git add 暂存变更
  • git commit 提交历史
  • git branch 管理分支
  • git log 查看记录

把这些命令练熟,你的开发效率将大幅提升。别再让一次误操作毁掉你一整天的努力——学会 Git,就是学会掌控代码的命运。