Git 入门教学:从零开始学会版本控制
Git 是目前最流行的分布式版本控制系统。无论你是写代码、写文档,还是参与团队协作,Git 都几乎是必备技能。本文面向零基础读者,带你理解 Git 的核心概念,并掌握日常最常用的命令。
一、Git 是什么?
Git 是一个分布式版本控制系统。它可以:
-
记录文件每一次修改
-
随时回退到历史版本
-
创建分支,并行开发不同功能
-
多人协作时合并代码
-
与 GitHub、GitLab、Gitee 等远程仓库配合
需要注意:Git 和 GitHub 不是一回事。
-
Git:本地版本控制工具
-
GitHub:基于 Git 的代码托管平台
-
GitLab、Gitee:类似 GitHub 的平台
二、安装与初始配置
1. 安装 Git
-
Windows:到Git官网下载安装
-
macOS:
brew install git -
Linux:
sudo apt install git或sudo dnf install git
安装后检查:
git --version
2. 配置用户名和邮箱
每次提交都会记录作者信息,所以先配置:
git config --global user.name "你的名字" git config --global user.email "你的邮箱@example.com"
查看配置:
git config --list
可选:设置默认分支名为 main:
git config --global init.defaultBranch main
三、Git 的核心区域
理解 Git,先理解四个区域:
工作区 --git add--> 暂存区 --git commit--> 本地仓库 --git push--> 远程仓库 远程仓库 --git clone/fetch/pull--> 本地
-
工作区:你正在编辑的文件
-
暂存区:准备提交的修改
-
本地仓库:已经提交的历史记录
-
远程仓库:GitHub、GitLab 等平台上的仓库
一次标准提交流程:
git add . git commit -m "提交说明"
四、创建第一个 Git 仓库
mkdir git-demo cd git-demo git init
创建一个文件:
echo "# Git Demo" > README.md
查看状态:
git status
把文件加入暂存区:
git add README.md
提交:
git commit -m "docs: 初始化项目"
查看历史:
git log --oneline
如果默认分支不是 main,可以重命名:
git branch -M main
五、日常常用命令
| 命令 | 作用 |
|---|---|
git status |
查看当前状态 |
git add <file> |
暂存指定文件 |
git add . |
暂存所有修改 |
git commit -m "说明" |
提交到本地仓库 |
git log --oneline |
查看简洁历史 |
git diff |
查看未暂存的修改 |
git diff --staged |
查看已暂存的修改 |
git restore <file> |
丢弃工作区修改 |
git restore --staged <file> |
取消暂存 |
git rm <file> |
删除文件并记录 |
git mv <old> <new> |
重命名文件 |
例如:
git status git diff git add README.md git commit -m "docs: 更新 README" git log --oneline --graph --all
六、分支:Git 最强大的功能
分支可以让你在不影响主分支的情况下开发新功能。
查看分支:
git branch
创建并切换到新分支:
git switch -c feature/login
旧版 Git 可以使用:
git checkout -b feature/login
在新分支上修改并提交:
git add . git commit -m "feat: 添加登录功能"
切回主分支:
git switch main
合并分支:
git merge feature/login
删除已经合并的分支:
git branch -d feature/login
遇到冲突怎么办?
如果两个分支修改了同一处内容,合并时可能冲突。Git 会提示:
git status
打开冲突文件,会看到:
<<<<<<< HEAD 当前分支的内容 ======= 要合并分支的内容 >>>>>>> feature/login
手动编辑,保留你需要的内容,删除冲突标记,然后:
git add 冲突文件 git commit -m "merge: 解决冲突"
如果不想继续合并:
git merge --abort
七、连接远程仓库
以 GitHub 为例,先创建一个空仓库,然后在本地执行:
git remote add origin https://github.com/你的用户名/git-demo.git git branch -M main git push -u origin main
-u 表示设置上游分支,以后直接:
git push
查看远程仓库:
git remote -v
克隆别人的仓库:
git clone https://github.com/用户名/仓库名.git
拉取远程更新:
git pull
只获取不合并:
git fetch
推送本地分支:
git push origin feature/login
通常团队协作流程是:
-
git pull拉取最新代码 -
创建功能分支:
git switch -c feature/xxx -
修改并提交
-
推送到远程:
git push -u origin feature/xxx -
在 GitHub/GitLab 发起 Pull Request
-
代码审查后合并
八、使用 .gitignore 忽略文件
有些文件不应该提交,比如依赖、日志、密码文件。可以在项目根目录创建 .gitignore:
# 依赖 node_modules/ venv/ __pycache__/ # 日志 *.log # 环境变量 .env # 构建产物 dist/ build/ # 系统文件 .DS_Store Thumbs.db
如果文件已经被跟踪,需要先移除缓存:
git rm --cached .env git commit -m "chore: 停止跟踪 .env"
九、撤销与回退
1. 丢弃工作区修改
git restore README.md
2. 取消暂存
git restore --staged README.md
3. 修改最近一次提交
git commit --amend
适合修改提交信息,或漏加文件后重新提交。已推送到远程的提交不要随便 amend。
4. 回退提交
git reset --soft HEAD~1 # 撤销提交,改动保留在暂存区 git reset --mixed HEAD~1 # 撤销提交,改动保留在工作区 git reset --hard HEAD~1 # 丢弃提交和改动,危险
--hard 会丢失未提交修改,使用前务必确认。
十、给初学者的建议
-
提交前先看
git status -
写清楚的提交信息,例如:
-
feat: 添加用户注册 -
fix: 修复登录失败问题 -
docs: 更新 README
-
-
小步提交,不要一次提交几百个文件
-
经常拉取远程更新,减少冲突
-
不要提交密码、密钥、大文件
-
不要随意使用
git push -f -
遇到问题先看提示,再看
git status -
多练分支和合并,这是 Git 的核心
十一、Git 命令速查表
# 初始化 git init # 克隆 git clone <url> # 状态 git status # 暂存 git add . git add <file> # 提交 git commit -m "说明" # 历史 git log --oneline --graph --all # 差异 git diff git diff --staged # 分支 git branch git switch -c <branch> git switch <branch> git merge <branch> git branch -d <branch> # 远程 git remote -v git remote add origin <url> git push -u origin main git pull git fetch # 撤销 git restore <file> git restore --staged <file> git reset --soft HEAD~1 git reset --hard HEAD~1
结语
Git 的入门并不难,真正需要掌握的核心命令并不多:add、commit、status、log、branch、switch、merge、push、pull。先把这些用熟,再逐步学习 rebase、cherry-pick、stash 等进阶功能。
最好的学习方式就是马上创建一个仓库,改一个文件,提交一次,再建一个分支。练得越多,Git 就越像你的第二本能。
- 点赞
- 收藏
- 关注作者
评论(0)