Git 入门教学:从零开始学会版本控制

举报
暮山紫 发表于 2026/09/12 09:36:45 2026/09/12
【摘要】 Git 是目前最流行的分布式版本控制系统。无论你是写代码、写文档,还是参与团队协作,Git 都几乎是必备技能。本文面向零基础读者,带你理解 Git 的核心概念,并掌握日常最常用的命令。一、Git 是什么?Git 是一个分布式版本控制系统。它可以:记录文件每一次修改随时回退到历史版本创建分支,并行开发不同功能多人协作时合并代码与 GitHub、GitLab、Gitee 等远程仓库配合需要注意:...

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

安装后检查:

bash
git --version

2. 配置用户名和邮箱

每次提交都会记录作者信息,所以先配置:

bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

查看配置:

bash
git config --list

可选:设置默认分支名为 main

bash
git config --global init.defaultBranch main

三、Git 的核心区域

理解 Git,先理解四个区域:

text
工作区  --git add-->  暂存区  --git commit-->  本地仓库  --git push-->  远程仓库
远程仓库  --git clone/fetch/pull-->  本地
  • 工作区:你正在编辑的文件

  • 暂存区:准备提交的修改

  • 本地仓库:已经提交的历史记录

  • 远程仓库:GitHub、GitLab 等平台上的仓库

一次标准提交流程:

bash
git add .
git commit -m "提交说明"

四、创建第一个 Git 仓库

bash
mkdir git-demo
cd git-demo
git init

创建一个文件:

bash
echo "# Git Demo" > README.md

查看状态:

bash
git status

把文件加入暂存区:

bash
git add README.md

提交:

bash
git commit -m "docs: 初始化项目"

查看历史:

bash
git log --oneline

如果默认分支不是 main,可以重命名:

bash
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> 重命名文件

例如:

bash
git status
git diff
git add README.md
git commit -m "docs: 更新 README"
git log --oneline --graph --all

六、分支:Git 最强大的功能

分支可以让你在不影响主分支的情况下开发新功能。

查看分支:

bash
git branch

创建并切换到新分支:

bash
git switch -c feature/login

旧版 Git 可以使用:

bash
git checkout -b feature/login

在新分支上修改并提交:

bash
git add .
git commit -m "feat: 添加登录功能"

切回主分支:

bash
git switch main

合并分支:

bash
git merge feature/login

删除已经合并的分支:

bash
git branch -d feature/login

遇到冲突怎么办?

如果两个分支修改了同一处内容,合并时可能冲突。Git 会提示:

bash
git status

打开冲突文件,会看到:

text
<<<<<<< HEAD
当前分支的内容
=======
要合并分支的内容
>>>>>>> feature/login

手动编辑,保留你需要的内容,删除冲突标记,然后:

bash
git add 冲突文件
git commit -m "merge: 解决冲突"

如果不想继续合并:

bash
git merge --abort

七、连接远程仓库

以 GitHub 为例,先创建一个空仓库,然后在本地执行:

bash
git remote add origin https://github.com/你的用户名/git-demo.git
git branch -M main
git push -u origin main

-u 表示设置上游分支,以后直接:

bash
git push

查看远程仓库:

bash
git remote -v

克隆别人的仓库:

bash
git clone https://github.com/用户名/仓库名.git

拉取远程更新:

bash
git pull

只获取不合并:

bash
git fetch

推送本地分支:

bash
git push origin feature/login

通常团队协作流程是:

  1. git pull 拉取最新代码

  2. 创建功能分支:git switch -c feature/xxx

  3. 修改并提交

  4. 推送到远程:git push -u origin feature/xxx

  5. 在 GitHub/GitLab 发起 Pull Request

  6. 代码审查后合并


八、使用 .gitignore 忽略文件

有些文件不应该提交,比如依赖、日志、密码文件。可以在项目根目录创建 .gitignore

gitignore
# 依赖
node_modules/
venv/
__pycache__/

# 日志
*.log

# 环境变量
.env

# 构建产物
dist/
build/

# 系统文件
.DS_Store
Thumbs.db

如果文件已经被跟踪,需要先移除缓存:

bash
git rm --cached .env
git commit -m "chore: 停止跟踪 .env"

九、撤销与回退

1. 丢弃工作区修改

bash
git restore README.md

2. 取消暂存

bash
git restore --staged README.md

3. 修改最近一次提交

bash
git commit --amend

适合修改提交信息,或漏加文件后重新提交。已推送到远程的提交不要随便 amend。

4. 回退提交

bash
git reset --soft HEAD~1   # 撤销提交,改动保留在暂存区
git reset --mixed HEAD~1  # 撤销提交,改动保留在工作区
git reset --hard HEAD~1   # 丢弃提交和改动,危险

--hard 会丢失未提交修改,使用前务必确认。


十、给初学者的建议

  1. 提交前先看 git status

  2. 写清楚的提交信息,例如:

    • feat: 添加用户注册

    • fix: 修复登录失败问题

    • docs: 更新 README

  3. 小步提交,不要一次提交几百个文件

  4. 经常拉取远程更新,减少冲突

  5. 不要提交密码、密钥、大文件

  6. 不要随意使用 git push -f

  7. 遇到问题先看提示,再看 git status

  8. 多练分支和合并,这是 Git 的核心


十一、Git 命令速查表

bash
# 初始化
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 的入门并不难,真正需要掌握的核心命令并不多:addcommitstatuslogbranchswitchmergepushpull。先把这些用熟,再逐步学习 rebase、cherry-pick、stash 等进阶功能。

最好的学习方式就是马上创建一个仓库,改一个文件,提交一次,再建一个分支。练得越多,Git 就越像你的第二本能。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。