从零开始学 Git —— 新手也能看懂的版本控制指南

“掌握 Git,是进入现代开发的第一步。很多程序员都没使用过git,在面试的时候,面试官问git是什么,估计很多同学都很尴尬,也不知道GitHub的存在
在阅读该篇博客前,你知道git是什么吗?”


一、为什么要学 Git?

在团队开发中,你会遇到这些问题:

  • 不小心改坏了代码,想恢复以前的版本;
  • 同事也在改同一个文件,结果互相覆盖;
  • 想知道是谁、在什么时候改了哪一行代码;
  • 想把代码同步到云端(GitHub / Gitee)。

Git 就是为了解决这些问题而生的。

Git 让你可以:

  • 安全记录历史(每一次修改都可回溯);
  • 方便协作(每个人都有完整的仓库副本);
  • 轻松切换版本(用分支控制开发进度);
  • 自由实验(在独立分支上大胆尝试新功能)。

二、Git 安装与配置

安装

由于我使用的是macOS,这里以 macOS 为例进行安装。windows的话也可以通过界面进行开发,现在安装jetbrains全家桶时都会有git控制,根据提示安装即可。jetbrains真就开箱即用。

  • macOS:

    1
    brew install git
  • Windows: 下载 Git for Windows

  • Linux:
    可以选择全局安装,同时也可以选择局部安装,看个人喜好了,这里以全局为例 。

    1
    sudo apt install git

初次配置

1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

检查是否生效:

1
git config --list

三、Git 的结构:三大区域理解图

Git 的操作其实就是在这三块区域之间移动文件:

1
2
3
4
5
工作区 (Working Directory)
↓ git add
暂存区 (Staging Area)
↓ git commit
版本库 (Repository)

再加上远程仓库,构成完整流程:

1
本地仓库 ↔ 远程仓库(GitHub、Gitee)

四、基本操作详解

初始化仓库

1
git init

查看状态

1
git status

添加修改到暂存区

1
2
3
git add 文件名
# 或一次性添加所有改动
git add .

提交修改

1
git commit -m "描述本次修改"

注意:提交的时候别随便提交,需要描述清楚。

查看历史记录

1
git log --oneline

五、分支管理(Branch)

分支是 Git 最强大的功能之一。

创建与切换

1
2
3
4
git branch dev       # 创建 dev 分支
git checkout dev # 切换到 dev
# 或一步完成
git checkout -b dev

查看分支

1
git branch

合并分支

1
2
git checkout main
git merge dev

删除分支

1
git branch -d dev

分支管理建议

  • main:主分支(稳定版本)
  • dev:开发分支(日常开发)
  • feature/*:功能分支(新功能)
  • hotfix/*:线上紧急修复

六、远程仓库操作(GitHub / Gitee)

添加远程仓库

1
git remote add origin https://github.com/yourname/repo.git

查看远程信息

1
git remote -v

推送代码

1
git push -u origin main

拉取更新

1
git pull origin main

七、常见问题与解决方案

1. 忽略某些文件(.gitignore)

在项目根目录添加 .gitignore 文件,例如:

1
2
3
4
node_modules/
.env
__pycache__/
.DS_Store

2. 回退操作

回到上一次提交:

1
git reset --hard HEAD~1

查看所有历史记录(含回退):

1
git reflog

3. 冲突解决(Merge Conflict)

当两个人修改同一文件同一行,Git 无法自动合并,就会提示冲突。
解决方式:

  • 打开冲突文件,手动保留正确的版本;

  • 保存后执行:

    1
    2
    git add .
    git commit

八、推荐工作流

最常见的团队协作模式:Git Flow

1
2
3
4
main   ← 发布分支
└── dev ← 开发分支
├── feature/xxx
├── hotfix/xxx
  1. 开发从 dev 创建 feature 分支;
  2. 完成功能后合并回 dev
  3. 发布版本时再从 dev 合并到 main

九、可视化工具推荐

  • GitHub Desktop – 简单易用,适合初学者
  • VS Code Git 面板 – 实时查看修改、分支、冲突
  • Sourcetree – 功能强大,适合团队项目

十、实战演练

以一个项目为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建项目并初始化
mkdir data_stellar && cd data_stellar
git init

# 创建 README
echo "# Data Stellar" > README.md

# 提交
git add .
git commit -m "first commit"

# 添加远程并推送
git remote add origin https://github.com/yourname/data_stellar.git
git push -u origin main

完成
现在你就成功把项目同步到了 GitHub!


十一、进阶建议

  1. 学会使用 rebase 整理提交历史;
  2. 学习 stash 暂存未提交修改;
  3. 理解 tag 管理版本号;
  4. 尝试 cherry-pick 挑选特定提交;
  5. 了解 GitHub FlowGit Flow 的区别。

十二、结语

Git 看似命令多,其实底层逻辑非常统一:
“用快照记录文件状态,用指针描述时间线。”

“每一个 commit,都是一次思想的快照。”