Git开发必备技能:零基础掌握版本控制核心流程

16 阅读7分钟

很多刚接触开发的朋友,最开始做项目的时候,都会像这样建一个普通的项目目录 —— 比如我们的ch_ai项目目录,把所有的代码、资源文件都丢进去,这就是最基础的项目开发目录。

这种方式看起来简单直接,但在实际的开发过程中,很快就会暴露各种各样的问题,让开发效率大打折扣:

传统项目目录的痛点

1. 多人协作举步维艰

单机的代码目录根本没办法支持团队协作,早期大家只能靠传压缩包、拷 U 盘来同步代码,不仅效率极低,还很容易出现代码冲突、版本混乱的问题。 后来我们有了 GitHub、GitLab、Gitee 这类中央仓库来做代码共享,而 Git 作为分布式版本控制工具,更是让协作变得高效:团队里每个人的本地机器上,都有一份完整的本地仓库,既可以通过中央仓库同步所有人的代码,也能保证自己本地有完整的版本历史,不用担心依赖中央仓库的状态。

2. 数据安全与版本回溯难

普通的目录里,代码就是硬盘上的文件,如果硬盘损坏,所有的代码就都找不回来了;更麻烦的是,如果你改了某个功能,过了几天发现出了问题,想要找回几天前的代码版本,根本没有办法 —— 因为你没有保存过之前的修改快照。 而 Git 引入了版本的概念,它会把每个阶段的代码都做成快照保存下来,一个文件的不同版本、整个项目的不同阶段,都能随时回溯,再也不怕改错了代码找不回来。

3. 开发过程不够工程化

没有版本控制的开发,所有的修改都是 “黑盒”,你没办法追踪每次修改是谁做的、做了什么,团队协作的时候很难理清开发的进度和变更的原因,整个开发过程没有规范可言。


Git 基础命令入门:从初始化到状态管理

想要用上 Git 的版本控制能力,只需要掌握几个最基础的命令,就能覆盖日常 80% 的开发场景。

1. git init:把普通目录升级为 Git 仓库

当你有了一个普通的项目目录,想要给它加上版本控制,第一步就是执行初始化命令:

git init

这个命令会把你当前的目录,从一个普通的文件夹,升级为带有版本控制能力的 Git 代码仓库。

执行完成之后,你的项目目录里会多出一个隐藏的.git文件夹 —— 这就是 Git 的核心,所有的版本历史、配置信息都存在这里。

⚠️ 注意:这个文件夹千万不能手动乱改,所有的操作都要通过 Git 命令来执行,否则很容易把整个仓库搞坏。

另外要注意,Windows 和原生 Linux 的命令行环境有区别,我们可以在项目目录下打开Git Bash,这是一个轻量的 Linux 环境,能让我们统一使用 Git 的命令,不用纠结不同系统的差异。

初始化完成之后,你可以用ls -all命令,就能看到这个隐藏的.git文件夹了。

2. 理解 Git 的区域:工作区、暂存区与仓库

在讲后续的命令之前,我们需要先搞清楚 Git 里的几个核心区域,这是理解 Git 操作的基础:

  • 工作区:就是你平时写代码、改文件的目录,也就是你能直接看到的项目文件夹。
  • 暂存区(Stage) :可以理解成一个 “临时存放区”,你改好的文件,会先放到这里暂存。
  • 本地仓库:Git 的核心仓库,保存了所有的版本历史,当你确认了暂存区的内容,就会把它提交到仓库里,生成一个永久的版本快照。

3. git add:把变更添加到暂存区

当你改好了某个文件,比如修改了readme.md,想要把这个变更记录下来,第一步就是用git add命令,把它添加到暂存区:

git add readme.md

执行之后,你会看到类似2 insertions这样的提示,这代表这次暂存里,有 2 行代码的新增,Git 会帮你精确记录每一处变更,哪怕只是改了一个字符。

你可以把暂存区想象成 “购物车”:你逛超市的时候,会把想要买的东西一个个放进购物车,而不是拿一个就去结一次账 ——Git 的暂存区也是一样的道理。

4. 为什么要分addcommit两步?

很多刚接触 Git 的朋友都会问:为什么不能直接把文件提交到仓库,要先addcommit?这其实是 Git 最巧妙的设计之一。

比如你这次要开发首页的功能,你改了三个文件:

  • 页面结构文件 index.html
  • 样式文件 common.css
  • 交互脚本 common.js

你可以逐个把这些改好的文件,用git add添加到暂存区:

git add index.html
git add common.css
git add common.js

在这个过程中,本地仓库的版本不会有任何变化,你随时可以后悔 —— 比如你发现某个文件改错了,你可以把它从暂存区撤回来,重新修改。

等所有和这个功能相关的文件都改完、都放进暂存区了,你再执行一次commit,把这些变更一次性提交到仓库,生成一个完整的版本。

这样做的好处是,你的版本记录会非常清晰:一个版本就对应一个完整的开发任务,而不是改一个文件就提交一次,把版本记录搞得乱七八糟。

5. git commit:把暂存区的变更提交到仓库

当你把所有需要的变更都添加到暂存区之后,就可以执行commit命令,把这些变更永久保存到仓库里,生成一个新的版本:

git commit -m "首页页面功能开发完成"

这里的-m参数,是用来写这次提交的说明信息的。

⚠️ 注意:这个提交说明千万不能乱写!不要写 “更新了代码”、“改了点东西” 这种没用的内容。团队里的同事、leader 看提交历史的时候,就是通过这个说明来快速知道这次提交做了什么,清晰的提交说明是团队协作的基础。

6. git status:随时查看仓库的状态

git status是 Git 里最常用的 “安全牌” 命令,不管你什么时候,只要你不清楚当前仓库的状态 —— 比如你忘了有没有把文件 add 到暂存区,忘了当前有哪些变更,只要执行这个命令,就能一目了然。

很多老开发者都有个习惯:任何关键时刻,先打 git status 看看情况,避免因为搞错状态而出错。

7. Git 里的文件状态

通过git status,你就能看到当前文件的不同状态,最常见的两种是:

  • untracked(未跟踪) :这个文件 Git 还没有管过,还没有加入过版本控制,Git 还不会追踪它的变更。
  • to be commit(待提交) :这个文件已经被你用git add添加到暂存区了,就等着执行commit提交到仓库了。

我们日常开发的标准工作流就是:针对一个完整的开发任务,把改好的文件多次add到暂存区,最后一次性commit,生成一个清晰的版本记录,这样既能保证开发的灵活性,也能让版本历史干净整洁。


掌握了这些基础的 Git 技能,你就已经告别了原始的单机项目目录,迈入了工程化的版本控制开发阶段,不管是自己独立开发,还是和团队协作,都能高效地管理你的代码版本了。