Git 是什么?它与集中式版本控制系统(如 SVN)有什么区别?
- 2025-10-22 14:00:00
- 刘 原创
- 10
一、Git 是什么?为什么需要它?
想象一下这个场景:你在写一篇论文,每次大的修改后,你都习惯性地保存一个新版本:论文_v1.doc,论文_v2.doc,论文_最终版.doc,论文_真的最终版.doc... 很快文件夹就变得混乱不堪。 Git 就是一个帮你优雅地解决这个问题的 分布式版本控制系统。它可以自动、清晰地记录你对文件(尤其是代码)的所有修改历史。你可以随时回到任何一个“存档点”,查看每次改了哪里,而且多人协作时不会互相覆盖工作。二、核心区别:Git(分布式) vs. SVN(集中式)
这是理解 Git 的关键。我们可以用一个生动的比喻来理解:- SVN(集中式)像一个中央图书馆:所有的书(代码)都放在一个中央图书馆(服务器)里。你想看书(写代码),需要先去图书馆借阅(从服务器下载最新版)。你看完想做个笔记(提交修改),必须把书还回图书馆(连接到服务器上传修改)。 你的工作高度依赖图书馆的开放时间(网络)和规则。
- Git(分布式)像人手一份的论文协作:你和小伙伴要合写一篇论文。协作开始时, 每个人手上都拿到了完整的论文初稿和所有的修改历史。然后大家各自回家工作。你可以在自己的稿子上随意涂改、写草稿(本地提交),无需随时通知别人。当你写好一部分后,再和大家互相传阅修改意见(交换提交),最后把公认最好的版本合并成终稿。 每个人都是独立的,拥有完整的备份和历史。
特性 | Git(分布式) | SVN(集中式) |
---|---|---|
仓库存储 | 每个成员的本地都有 完整仓库和历史 | 只有中央服务器有完整历史,本地只有最新文件 |
网络需求 | 可离线工作(提交、查看历史等操作无需联网) | 严重依赖网络(提交等核心操作需联网) |
分支管理 | 创建、切换分支极快,鼓励频繁使用分支 | 分支操作较慢,不灵活 |
提交流程 | 提交是 本地操作,可积累多次提交后一次性推送到远程 | 提交是 直接更新中央仓库 |
三、动手实践:Git 基础代码示例
让我们通过命令行(Terminal, Git Bash, CMD 等)来实际感受一下 Git 的基本工作流程。 1. 初始化仓库:创建你的“时光机”仓库(Repository)是 Git 用来存储你的项目历史和元数据的地方。进入你的项目文件夹,初始化一个 Git 仓库。# 进入你的项目目录 cd /path/to/your/project # 初始化 Git 仓库 git init执行后,Git 会在该目录下创建一个隐藏的.git文件夹,这就是你的“时光机”核心。 2. 查看状态:当前工作区的快照在添加文件之前,最好先看看 Git 认为当前是什么状态。
git status这个命令会告诉你哪些文件被修改了,哪些是新文件还未被跟踪(Untracked)。 3. 添加文件到暂存区:准备“存档”内容Git 有一个叫“暂存区”(Staging Area)的概念,它允许你选择哪些修改需要被记录在下一次“存档”中。
# 添加单个文件 git add readme.txt # 添加当前目录下所有变化(新增、修改) git add . # 添加所有变化(包括删除操作) git add -A4. 提交更改:创建“存档点”提交(Commit)就是创建一个“存档点”,并附上说明,方便日后查看。
git commit -m "这里写你本次提交的说明,例如:初始化项目,添加首页文档"
- -m参数后面的消息 必须写,且要清晰明了,这是良好的习惯。
- 首先,在 GitHub 上创建一个新的空仓库。
- 然后,将你的本地仓库与远程仓库关联起来。
# 添加远程仓库地址,并给它起个别名叫 `origin`(惯例) git remote add origin https://github.com/你的用户名/你的仓库名.git # 将本地的提交推送到远程仓库的 `main` 分支(早期版本可能是 master) git push -u origin main
- 第一次推送时使用-u参数,它将本地main分支与远程origin/main分支关联起来,下次你只需要输入git push即可。
-
查看提交历史:
git log
-
从远程仓库获取最新代码:
git pull origin main
-
克隆一个已存在的远程仓库(这是你参与他人项目最常用的起点):
git clone https://github.com/某个项目/地址.git
四、核心概念:工作区、暂存区、仓库
为了更好地理解add和commit,你需要明白 Git 的三个重要区域:- 工作区:你电脑上看到的项目文件。
- 暂存区:通过git add命令,你将工作区的修改“暂存”到这里,准备下一次提交。
- 仓库:通过git commit命令,你将暂存区的内容永久保存到仓库的历史记录中。
总结
Git 的强大之处在于其分布式的设计理念,它让你能放心地尝试任何修改,因为你知道随时可以安全地回溯。虽然刚开始接触暂存区、分支等概念可能有些陌生,但一旦你掌握了git init->git add->git commit->git push这个基本工作流,你就已经拿到了高效管理代码和参与协作的钥匙。现在,就找一个你的小项目文件夹,打开命令行,输入git init,开始你的版本控制之旅吧!
发表评论
联系我们
联系人: | 郑女士 |
---|---|
电话: | 13792883250 |
Email: | zhengqiaoyin@cnezsoft.com |