2-2 Git核心概念:本地版本仓库&远程版本仓库
本地版本仓库
Git 是分布式版本控制系统,每个开发者的本地都拥有完整的仓库副本,包含所有历史记录。即使没有网络连接,也可以查看历史、创建分支、提交代码。
本地仓库的核心区域:
| 区域 | 说明 | 命令示例 |
|---|---|---|
| 工作区(Working Directory) | 你实际编辑文件的地方 | 直接编辑文件 |
| 暂存区(Staging Area/Index) | 标记了哪些修改将进入下次提交 | git add |
| 版本库(Repository) | 存储所有提交的历史记录 | git commit |
初始化本地仓库
# 在已有目录中初始化
mkdir my-project && cd my-project
git init
# 或者克隆远程仓库
git clone https://github.com/user/repo.git
bash
git init 会在目录下创建一个隐藏的 .git 目录,存放所有版本控制信息。
本地操作流程
# 1. 修改文件
echo "Hello Git" > README.md
# 2. 查看状态
git status
# 3. 添加到暂存区
git add README.md
# 4. 提交到版本库
git commit -m "feat: add README"
# 5. 查看提交历史
git log --oneline
bash
远程版本仓库
远程仓库是托管在服务器上的仓库副本,用于多人协作和代码备份。常见的远程仓库托管平台有 GitHub、GitLab、Gitea 等。
远程仓库管理
# 查看远程仓库
git remote -v
# 添加远程仓库
git remote add origin https://github.com/user/repo.git
# 修改远程仓库地址
git remote set-url origin https://github.com/user/new-repo.git
# 删除远程仓库
git remote remove origin
bash
本地与远程的同步
# 推送本地提交到远程
git push origin main
# 拉取远程更新到本地
git pull origin main
# 拉取但不合并(更安全的方式)
git fetch origin
git merge origin/main
bash
push 和 pull 的本质
push: 本地版本库 → 远程版本库
pull: 远程版本库 → 本地版本库 → 工作区(自动合并)
fetch: 远程版本库 → 本地版本库(不合并)
text
本地与远程的关系
远程仓库 (origin/main)
↕ push / pull
本地版本库 (.git)
↕ git commit
暂存区 (Index)
↕ git add
工作区 (Working Directory)
text
Git 的分布式特性意味着每个开发者的本地仓库都是完整的,不依赖远程仓库即可工作。远程仓库的作用是同步和协作,而非必需的中心节点。
多远程仓库场景
一个项目可以关联多个远程仓库:
# 添加上游仓库(fork 场景)
git remote add upstream https://github.com/original/repo.git
# 从上游拉取更新
git fetch upstream
git merge upstream/main
# 推送到自己的 fork
git push origin main
bash
参考资源
↑