Git理论知识
版本控制(Version Control),也称为revision control或source control,是一种软件工程技巧,旨在帮助开发者管理和跟踪对文件、目录或项目中的内容所做的修改历史。它对于软件开发尤其重要,因为它允许团队成员在开发过程中协同工作,同时确保每个人都能访问到最新且一致的代码版本。
常见的版本控制工具中,SVN是集中式的,Git是分布式的。集中式就是有一台服务器专门用来记录版本控制,需要联网才能使用,且容易出现单点故障问题;分布式是所有的版本控制信息同步到每个用户,去中心化,但是这样做增加了本地的存储占用。
Git是一个开源的分布式版本控制系统,由Linus Torvalds在2005年为了帮助管理Linux内核开发而创建。它设计用于高效、高速地处理任何规模的项目版本管理,从小型个人项目到大型企业级软件开发。
由于其强大的功能、灵活性以及开源的性质,Git成为了目前世界上最流行的版本控制系统之一,对于现代软件开发流程来说是不可或缺的工具。
GitHub基于Git实现,GitHub是程序员的必备技能,希望可以通过我的系列专栏博客让你掌握Git和GitHub。
区域划分
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
文件状态
在不同的区域之间,是使用git管理的文件的不同状态的转换,在Git版本控制系统中,文件可以有以下四种状态:
- 未跟踪(Untracked):
- 这表示文件存在于工作目录中,但还没有被Git跟踪。即Git对该文件是未知的,它不在Git仓库的版本控制范围内。要开始跟踪一个未跟踪的文件,你需要使用
git add ,
命令将其添加到暂存区。
- 这表示文件存在于工作目录中,但还没有被Git跟踪。即Git对该文件是未知的,它不在Git仓库的版本控制范围内。要开始跟踪一个未跟踪的文件,你需要使用
- 已跟踪但未修改(Unmodified/Committed):
- 当一个文件已经被添加到Git仓库中,并且自上次提交后没有发生任何变动,这个文件就处于已跟踪但未修改的状态。它是与最近一次提交相同的版本,也常被描述为“干净”的状态。
- 已修改(Modified):
- 如果一个已跟踪的文件内容发生了改变,但这些改变还没有被保存到Git仓库中,那么这个文件就处于已修改状态。使用
git status
命令可以查看哪些文件已被修改。
- 如果一个已跟踪的文件内容发生了改变,但这些改变还没有被保存到Git仓库中,那么这个文件就处于已修改状态。使用
- 已暂存(Staged):
- 通过使用
git add
命令,你可以将已修改的文件从工作目录移动到暂存区(也称为索引)。这意味着你标记了这些更改以便在下一次提交时包含进去。文件在暂存区时,它们的状态即为已暂存。
- 通过使用
总结来说,Git通过这四种状态来管理文件,从未被Git知道的新文件到准备提交的更改,每一步都有明确的状态区分,帮助开发者清晰地理解和控制版本历史。
#查看指定文件状态
git status [filename]
#查看当前目录下的所有文件状态
git status
工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
本文介绍了git的理论基础知识,后续将进行实际的操作,希望你可以跟上我的节奏,在实践中熟悉git的使用。