你是否曾因代码冲突而抓狂?是否在版本混乱的泥潭中挣扎?想象一下,你拥有一个时光机------不仅能随时回到历史版本,还能让多人协作像跳一支优雅的探戈。这就是Git赋予开发者的超能力!它不仅是代码的保险柜,更是团队协作的神经中枢。让我们从解开"分布式版本控制"的魔法开始,为你的编程之旅装上最强大的引擎。准备好告别版本地狱,迎接丝滑的开发体验了吗?
以后我决定将我的博客风格修改一下,原来是直接一篇博客或两篇博客就发布完整内容,这次我打算将内容分成三或四篇博客,大家一起期待一下吧!
1、Git概念
Git是目前世界上最先进的分布式控制系统。
集中式版本控制系统
集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

这种系统最显而易见的缺点是中央服务器的单点故障。如果宕机一个小时,那么在这一个小时内,谁都无法提交更新,无法协同工作。如果中央服务器的磁盘发生故障的话严重的话会导致数据丢失。
分布式版本控制系统
分布式版本控制系统(Distributed Version Control System,简称DVCS )会把服务器上的代码仓库完整地镜像下来。这样每个人的电脑上都有一份完整的服务器代码仓库的镜像,每一次的提取操作,实际上都是一次对代码仓库的完整备份。

Git和其他版本控制系统的主要差别在于,Git只关心数据的整体是否发生变化,而大多数系统则只关心文件内容的具体差异。

Git并不保存这些前后变化的差异数据。

Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。因为Git在本地磁盘上保存着所有当前项目的历史更新,所以处理起来速度飞快。
2、Git仓库
基本概念
- 远程仓库(Remote)
- 也叫做资源库,是远程机器上的代码库,用于做不同版本库文件交换更新,如Gitlab,GitHub,gitee。
- 本地库(Repository)
是用户在本地创建的目录,拥有远程库的一个快照,由工作区和版本库构成。 - 工作区(Workspace)
- 本地库的根目录中除.git目录以外的内容,存储内容的实际文件。
- 暂存区(stage/Index)
- 也叫做缓存区,暂存信息存放在.git目录下的index文件(.git/index)中,用于临时保存内容的修改。
- 版本库(.git目录)
- 是本地库的根目录中的一个隐藏目录.git,用于记录版本信息,Git进行版本控制所需要的文件,则都放在.git文件夹中。
- 分支(Branch)
本地库中默认创建一个主(master)分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
本地库和远程库的关系

常用的六个命令


获取本地仓库
进入到目标目录,打开git bash 然后执行git init 命令,成功后目标目录中将出现隐藏文件夹.git
3、Git配置信息Config
在Git中,我们使用git config 命令来配置git的配置文件,git配置级别主要有以下三类:
- 仓库级别 local(优先级最高)
- 对应的配置文件是当前仓库下的.git/config
- 用户级别 global(优先级次之)
- 对应的配置文件是用户宿主目录下的~/.gitconfig
- 系统级别 system(优先级最低)
- 对应的配置文件是git安装目录下的/etc/gitconfig
bash
# 查看仓库级别配置
git config --local -l
# 查看用户级别配置
git config --global -l
# 查看系统级别配置
git config --system -l
修改用户名和邮箱(这是安装完第一次使用就应该设置的东西)
bash
# 不可以手动修改,每个级别的配置文件,都要用命令。
git config --global user.name "maxiaowen"
git config --global user.email "3446033927@qq.com"
对于git来说,配置文件的权重是仓库>全局>系统。Git会使用这一系列的配置文件来存储你定义的偏好,首先查找/etc/gitconfig文件(系统级),该文件含有对系统上有用户及他们所拥有的仓库都生效的配置值。接下来Git会查找每个用户的~/.gitconfig文件(全局级)。最后Git会查找由用户定义的各个库中Git目录下的配置文件.git/config(仓库级),该文件中的值只对当前所属仓库有效。