🏠 首页 › 攻略 › Git是什么?程序员必备的时间机器

Git是什么?程序员必备的时间机器

Git是版本控制工具,记录代码每一次改动。本文用大白话讲清楚Git是什么、为什么需要它、核心概念以及日常用法,零基础也能看懂。

你有没有遇到过这种情况:改着改着代码,发现改坏了,想恢复原来的版本,但已经找不到备份了。或者多个同事同时改同一个文件,互相覆盖了对方的工作。

这就是版本控制要解决的问题。而 Git 是目前最流行的版本控制工具。

Git 是什么?

Git 是一个版本控制系统,它像一台时间机器,记录你项目里每一个文件的每一次改动。

打个比方:你写论文,每改一版就存一个文件——论文v1.doc、论文v2.doc、论文最终版.doc、论文真的最终版.doc……很快你就有十几个版本,自己都分不清哪个是对的。

Git 帮你自动管理这些版本。你只需要告诉它"保存一下",它就把当前状态存起来,随时可以回到任何一个历史时刻。

为什么需要 Git?

不用 Git 也能写代码,但有几个痛点:

第一,回退困难。 改坏了代码,没有备份就只能重做。有了 Git,一行命令就能回到上一步。

第二,协作混乱。 多人改同一个文件,容易出现覆盖。Git 帮你合并改动,解决冲突。

第三,找不到功能。 某个版本的代码特别好用,但不知道存在哪个文件夹里。Git 让你用标签标记重要版本,随时找回。

Git 的核心概念

理解 Git 之前,先搞懂四个基本概念。

工作区、暂存区、仓库

把 Git 想象成一个厨房:

  • 工作区是你的案板,你在上面切菜改代码
  • 暂存区是备菜盘,你把切好的菜放这里,准备下锅
  • 仓库是冰箱,你把做好的菜存起来,随时可以拿出来吃

流程就是:改代码 → 放入暂存区 → 提交到仓库。

提交(Commit)

提交就是"存档"。每提交一次,Git 就保存一个快照。你可以给每次提交写个说明,比如"修复登录bug"、“新增用户头像功能”。

分支(Branch)

分支就像平行世界。你在主分支上开发,可以同时开一个测试分支试试新功能。两个分支互不影响,测试好了再合并回主分支。

远程仓库

远程仓库就是存在服务器上的备份。你把本地提交推送到远程,同事就能拉取你的代码。反过来,同事推送了新版本,你也能拉取更新。

Git 怎么用?

基础操作

# 克隆别人的项目
git clone https://github.com/user/project.git

# 查看当前状态
git status

# 把改动加入暂存区
git add 文件名

# 提交改动
git commit -m "修复了登录页面的bug"

# 推送到远程
git push

# 拉取最新代码
git pull

分支操作

# 查看所有分支
git branch

# 创建新分支
git branch feature-login

# 切换到新分支
git checkout feature-login

# 创建并切换(常用)
git checkout -b feature-login

# 合并分支到当前分支
git merge feature-login

# 删除分支
git branch -d feature-login

查看历史

# 查看提交历史
git log

# 查看每次改动的详细内容
git log -p

# 只看最近5条
git log -5

Git 和其他工具的对比

工具特点适合场景
Git分布式,本地就有完整历史个人项目、团队协作
SVN集中式,必须联网老旧项目维护
Mercurial类似Git,但用户少特定社区

现在基本只有 Git 在用,其他两个都是古董了。

新手常踩的坑

坑一:不写提交说明。 提交时不写 -m "说明",以后回头看日志,完全不知道上次改了什么。

坑二:忘记 add 就 commit。 git commit 之前一定要先 git add,不然提交的是空内容。

坑三:直接改别人的分支。 应该先 git pull 拉取最新代码,再推送到远程,否则会冲突。

坑四:force push 太随意。 git push -f 会覆盖远程历史,除非你确定没人用这个分支,否则别用。

总结

Git 是程序员的必备技能。它不是复杂的魔法,就是一套管理代码版本的工具。

记住三个动作就够了:add(放入暂存区)、commit(提交存档)、push(推送到远程)。

刚开始用会觉得麻烦,但习惯之后你会发现,没有 Git 的项目根本没法做。

你的第一个 Git 项目,可以从一个空文件夹开始。初始化、提交几次、看看日志,你就入门了。