
你的代码是怎么管理的?文件夹复制,加上日期后缀v1、v2、v3_final、v3_final_real?改了一个bug,不小心覆盖了新功能。想找回昨天的版本,翻遍回收站也找不到。
这不是你的问题,是没有版本控制的必然结果。
Git是目前最流行的版本控制系统。今天不聊原理,只讲命令。学完就能用,用了就能解决实际问题。
Git是什么?——代码的“时光机”
Git的核心能力就三件事:记录每一次修改,随时回到任意历史版本,多条开发线同时进行。
团队协作时,它还能自动合并代码,冲突时提示你手动解决。
你不用管Git底层怎么存数据,只需掌握日常会用到的几个命令。
安装与初始化
Linux:sudo apt install git -y (Ubuntu/Debian) 或 sudo yum install git -y (CentOS/RHEL)
Windows/Mac:去git-scm.com下载安装包
验证:git --version
配置身份(每次提交都会记录你是谁):
bash
git config --global user.name "你的名字" git config --global user.email "你的邮箱"
开始一个项目:
- 新项目:
git init在当前目录初始化仓库 - 已有项目:
git clone https://github.com/用户名/仓库名.git下载到本地
日常开发四步曲
第一步:查看状态
bash
git status
显示哪些文件被修改、哪些是新文件、哪些要提交。建议每次操作前都敲一遍,避免误操作。
第二步:把文件加入暂存区
bash
git add 文件名 # 添加单个文件 git add . # 添加所有新文件和修改 git add *.py # 通配符
add不是提交,是把文件放进“购物车”,准备一次性提交。没add的文件不会被提交。
第三步:提交到本地仓库
bash
git commit -m "修复了登录bug"
-m后面是本次修改的说明,建议写得清晰,以便将来回溯。
第四步:推送到远程仓库
bash
git push origin main
把本地提交同步到GitHub/GitLab等远程仓库。origin是远程仓库的默认别名,main是分支名(老项目可能是master)。
分支操作
分支是Git最强大的特性。你可以在主分支之外开一条新线,改完测试通过再合并回去。
bash
git branch # 查看本地分支(当前分支前有*号) git branch feature-xxx # 创建新分支 git checkout feature-xxx # 切换到新分支 git checkout -b feature-xxx # 创建并切换(两步并一步) git merge feature-xxx # 把feature-xxx合并到当前分支 git branch -d feature-xxx # 删除分支(合并后清理)
合并时遇到冲突:Git不知道保留哪个版本,会在文件里标记冲突位置,手动选择后重新add和commit。
撤销与回滚
bash
git checkout -- 文件名 # 撤销工作区的修改,回到上次commit的状态 git reset HEAD 文件名 # 把文件从暂存区撤回,但保留修改 git reset --soft HEAD~1 # 撤销上一次commit,修改保留在暂存区 git reset --hard HEAD~1 # 彻底回到上一个版本,修改直接丢掉(慎用) git log # 查看提交历史,找到想回去的commit id git reset --hard commit_id # 回到指定版本
如果已经push到远程了,不要用reset,用git revert(生成一个新的反向提交),因为reset会改写历史,影响队友。
拉取与合并
bash
git pull origin main # 拉取远程更新并合并到当前分支 git fetch origin # 只拉取不合并,先看看远程改了啥 git diff origin/main # 比较本地和远程的差异 git merge origin/main # 手动合并
推荐git pull --rebase,能让提交历史更干净,但新手先用默认pull就好。
.gitignore:让Git忽略你不想管的文件
在项目根目录创建.gitignore文件,写入不需要版本控制的文件或目录。例如:
text
node_modules/ .env *.log .DS_Store dist/
这些文件不会被git add和git status干扰。
团队协作标准流程
- 开始工作前:
git pull origin main(拉取最新代码) - 新建功能分支:
git checkout -b feature-xxx - 日常提交:
git add .→git commit -m "xxx" - 推送分支:
git push origin feature-xxx - 在GitHub/GitLab上发起Pull Request/Merge Request
- 团队评审通过后合并到主分支
- 删除本地分支:
git branch -d feature-xxx - 切回主分支并拉取更新:
git checkout main→git pull origin main
核心原则:永远不在主分支上直接修改,每个功能单独开分支。
常用命令速查
| 命令 | 用途 |
|---|---|
git status | 查看当前状态 |
git add . | 添加所有修改到暂存区 |
git commit -m "msg" | 提交到本地仓库 |
git push origin main | 推送到远程 |
git pull origin main | 拉取远程更新 |
git branch | 查看分支 |
git checkout -b xxx | 创建并切换分支 |
git merge xxx | 合并分支 |
git log --oneline | 简洁版提交历史 |
git diff | 查看未暂存的修改 |
一个真实案例
一个小型开发团队,三个人写同一个项目。以前用共享文件夹,经常出现“谁把代码覆盖了”的撕扯。用Git之后,每个人在自己的分支上开发,合并前先pull再push,覆盖问题再也没有出现过。
新来的实习生,半天就学会了这套流程。负责带他的人说:“以前教版本控制要两天,现在半天就够了。”
最后一句
Git不难,难的是每天用。
你不用记住所有命令。每天只用status、add、commit、push、pull五条。足够覆盖绝大多数日常场景。
从今天开始,把v1、v2、final这种文件夹删掉。用Git管理你的代码。一个月后你会觉得,以前的日子简直是原始社会。




