在软件开发中,版本控制是多人协同的基础。目前市面上最主流的版本控制系统是SVN(集中式)和Git(分布式)。近期整理了关于版本控制的思维导图,本文以此为基础,提炼出最核心的概念、工作流和实战指令,助你快速通关版本控制。
一、 版本控制基础概念
1. 目的与对比
目的:实现版本控制,支持多人协同开发。
SVN(集中式):版本库存放在中心服务器。如果断网或服务器宕机,无法提交代码,且历史记录依赖服务器。
Git(分布式):每个人本地都有完整的仓库。支持离线提交,分支管理能力极强,是目前绝对的主流。
2. Git 四大核心区域
理解 Git,首先要牢记四个区域:
工作区 (Working Directory):我们平时写代码的目录。
暂存区 (Staging Area):用于存放改变,暂存准备提交的内容。
本地仓库 (Local Repository):管理仓库,存放历史版本。
远程仓库 (Remote Repository):服务仓库,用于团队共享。
二、 Git 基础高频指令
掌握以下指令,就能完成日常90%以上的工作。
1. 初始化与状态查看
初始化:
git init(将工作目录变为Git项目,生成隐藏文件.git)。查看状态:
git status(查看工作区与暂存区的状态)。白色:正常。
红色:工作区有修改未提交。
绿色:暂存区有内容没有提交。
2. 文件流转与撤销
添加到暂存区:
git add <文件名>。撤销暂存:
git rm --cached -r .(将暂存区内容撤销回工作区)。提交到本地仓库:
git commit -m "msg"(建议用一句话清晰描述修改内容)。撤销本地修改:
git restore <文件名>(撤销工作区未暂存的内容)。取消暂存:
git restore --staged <文件名>(从暂存区撤回到工作区)。版本回退:
git reset --hard <版本号前缀>(强制切换版本,慎用,会丢失当前工作区未提交的修改)。
3. 用户配置(非常关键)
Git 提交时必须知道是谁提交的。
全局配置:
git config --global user.email "邮箱"和git config --global user.name "名字"(适用于该电脑所有项目,配置在C:\Users\Administrator\.gitconfig)。局部配置:去掉
--global,如git config user.email "邮箱"(仅针对当前项目,优先级高于全局)。
三、 分支管理(Git核心优势)
分支是Git的灵魂。从主分支上创建子分支,子分支内容来源于主分支,开发完成后,再合并回主分支。
1. 分支基本操作
查看分支:
git branch(查看所有分支,以及当前所在分支)。创建分支:
git branch -c <分支名>。删除分支:
git branch -d <分支名>。创建并切换:
git switch -c <分支名>(推荐使用,一步到位)。切换分支:
git switch <分支名>。
2. 分支合并
合并分支:
git merge <目标分支名>(将指定分支合并到当前分支上)。注意:如果两个分支修改了同一文件的同一处,会产生冲突,需要手动修改后再次提交。
四、 远程仓库操作与日志
1. 与远程仓库交互
查看日志:
git log(查看详细的提交历史记录)。拉取代码:
git pull(从远程仓库拉取更新到本地)。推送代码:
git push(将本地提交推送到远程仓库)。
2. 编辑器搭配
在实际开发中,我们通常在VSCode、IDEA等编辑器内置的Git插件中完成以上操作,这样可以通过图形化界面更直观地查看文件修改对比(Diff)和管理分支。