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)
分支是独立的开发线路。默认分支通常是 main 或 master。你可以创建新分支来开发新功能,完成后合并回主分支。
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 mainGit 文件状态
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~1Q: 如何解决冲突?
A: 当多人修改同一文件时可能会产生冲突:
- Git 会标记冲突的文件
- 手动编辑冲突文件,选择要保留的内容
- 添加并提交解决后的文件
Q: 如何查看某个文件的修改历史?
A: 使用以下命令:
bash
# 查看文件的提交历史
git log <file>
# 查看文件的修改内容
git diff <file>推荐学习资源
下一步
Git 基础概念学习完成后,让我们继续学习 克隆仓库。