Skip to content

Git 基础概念

在获取 EnderRealm 代码之前,你需要理解 Git 的核心概念。

版本控制是什么?

想象一下你在写论文:

  • 没有版本控制:你可能会创建多个文件,如 论文_v1.doc论文_v2.doc论文_最终版.doc论文_最终版_真的最终版.doc
  • 有版本控制:只有一个文件,但系统会记录每次修改,你可以随时回到任何一个版本

Git 就是一个版本控制系统,它帮助你:

  • 追踪变化:记录每次修改的内容、时间、作者
  • 管理版本:随时回到之前的某个版本
  • 多人协作:多人同时修改同一项目而不冲突
  • 分支开发:同时开发多个功能而不互相影响

Git 的核心概念

仓库(Repository)

仓库是 Git 存储项目历史的地方。每个 Git 项目都有一个 .git 目录,包含所有版本信息。

my-project/
├── .git/          # Git 仓库目录(隐藏)
├── src/           # 源代码
├── docs/          # 文档
└── README.md      # 项目说明

工作区(Working Directory)

工作区是你当前编辑的文件所在的目录。你在工作区中修改文件,Git 会追踪这些变化。

暂存区(Staging Area)

暂存区是一个临时区域,用于准备下一次提交。你可以选择性地将文件添加到暂存区。

提交(Commit)

提交是保存到历史记录的一个快照。每次提交包含:

  • 修改的内容:哪些文件被修改了
  • 提交信息:描述这次修改的内容
  • 时间戳:提交的时间
  • 作者:提交的人

分支(Branch)

分支是独立的开发线路。默认分支通常是 mainmaster。你可以创建新分支来开发新功能,完成后合并回主分支。

Git 的工作流程

典型的 Git 工作流程:

1. 修改文件(工作区)

2. 添加到暂存区(git add)

3. 提交到仓库(git commit)

4. 推送到远程(git push)

常用 Git 命令

查看状态

bash
# 查看工作区状态
git status

输出示例:

On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        new-file.txt

添加文件到暂存区

bash
# 添加单个文件
git add README.md

# 添加所有文件
git add .

# 添加所有 .java 文件
git add *.java

提交更改

bash
# 提交并添加信息
git commit -m "添加了新功能"

# 提交所有已修改的文件(跳过 git add)
git commit -am "修改了现有文件"

查看历史

bash
# 查看提交历史
git log

# 简洁模式
git log --oneline

# 图形模式
git log --graph --oneline --all

输出示例:

commit 1a2b3c4d5e6f7g8h9i0j (HEAD -> main)
Author: Your Name <your.email@example.com>
Date:   Mon Jul 13 10:00:00 2026 +0800

    添加了新功能

commit 0j9i8h7g6f5e4d3c2b1a
Author: Your Name <your.email@example.com>
Date:   Sun Jul 12 15:00:00 2026 +0800

    初始提交

创建分支

bash
# 创建新分支
git branch feature-login

# 切换到新分支
git checkout feature-login

# 创建并切换到新分支
git checkout -b feature-login

合并分支

bash
# 切换到主分支
git checkout main

# 合并 feature-login 分支
git merge feature-login

远程操作

bash
# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add origin https://github.com/user/repo.git

# 推送到远程
git push origin main

# 从远程拉取
git pull origin main

Git 文件状态

Git 中的文件有以下几种状态:

未跟踪(Untracked)
    ↓ git add
已暂存(Staged)
    ↓ git commit
已提交(Committed)
    ↓ 修改文件
已修改(Modified)
    ↓ git add
已暂存(Staged)
    ...

.gitignore 文件

.gitignore 文件用于指定 Git 应该忽略的文件和目录。常见的忽略项:

gitignore
# 编译输出
*.class
*.jar
build/

# IDE 文件
.idea/
*.iml
.vscode/

# 系统文件
.DS_Store
Thumbs.db

# 环境变量
.env
.env.local

# 日志
*.log
logs/

常见问题

Q: 如何撤销修改?

A: 根据情况使用不同命令:

bash
# 撤销工作区的修改
git restore <file>

# 撤销暂存区的修改
git restore --staged <file>

# 撤销提交(保留修改)
git reset --soft HEAD~1

# 撤销提交(丢弃修改)
git reset --hard HEAD~1

Q: 如何解决冲突?

A: 当多人修改同一文件时可能会产生冲突:

  1. Git 会标记冲突的文件
  2. 手动编辑冲突文件,选择要保留的内容
  3. 添加并提交解决后的文件

Q: 如何查看某个文件的修改历史?

A: 使用以下命令:

bash
# 查看文件的提交历史
git log <file>

# 查看文件的修改内容
git diff <file>

推荐学习资源

下一步

Git 基础概念学习完成后,让我们继续学习 克隆仓库