【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibili
版本控制
是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看和更改历史记录、备份以便恢复以前的版本的软件工程技术。即用于管理多人协同开发项目的技术。
- 实现跨区域多人开发
- 追踪记载一个或多个文件的历史记录
- 组织和保护源代码和文档
- 统计工作量
- 并行开发,提供开发效率
- 跟踪记录整个软件开发流程
- 减轻开发人员的负担,节省时间,降低人为错误
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发的过程中会带来很大问题,比如:软件代码的一致性、软件内容的冗余、软件过程的事务性、软件开发过程的并发性、源代码的安全性以及软件的整合等问题。
无论是工作还是学习,或者自己做笔记,都经历过这样一个阶段!!所有我们就迫切需要一个版本控制工具。
多人开发就必须要使用版本控制,否则代价会比较大!
版本控制工具
现在影响力最大且使用最广泛是Git和SVN,常见主流的版本控制工具:
- Git
- SVN
- CVS
- VSS
- TFS
- visual Studio Online
分类
本地版本控制:
记录文件每次的更新,可以对每个版本做一个快照或记录补丁文件,适合个人使用
集中版本控制:SVN
所有版本数据都保存在服务器上,协同开发者从服务器同步更新或上传自己的修改。用户的本地只有自己以前同步保存的版本。如果不连网,就看不到历史版本,也无法切换版本验证问题或在不同的分支工作。
而且所有的版本数据都保存在服务器上,有很多的风险这个服务器损坏,这样就会丢失所有的数据,当然我们也可以进行定期备份。
分布式版本控制:Git
所有的版本信息仓库全部同步到本地的每个用户(每个人都拥有全部的代码),这样就可以在本地查看所有版本历史,可以离线在本地提交,只需要在连网的时候push到相应的服务器或其他用户那里。由于每个用户保存的都是所有版本数据,因此只要有一个用户的设备 没有损坏,那么只要有一个用户的设备没有问题就可以恢复所有的版本数据,但是这大大增加了用户本地存储空间的占用。
不会因为服务器损坏或者网络问题,造成不能工作的情况!!
Git和SVN的区别
- SVN是集中版本控制系统,版本库是集中放置中央服务器的。工作的时候,用的都是自己的电脑,首先需要从中央服务器得到最新的版本,然后工作。完成工作之后,需要把自己做的那部分工作推送到中央服务器。
- Git是目前世界上最先进的分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库。Git可以直接看到更新了哪些代码和文件。
Git下载安装
1、安装前往下载链接:https://git-scm.com/
2、下载完毕,运行安装程序,无脑安装,一直next即可
检查安装 ( Win + R 打开命令提示符, 输入以下命令 ), 已经安装如下图:
git --version
Git环境配置
查看环境配置
git config -l
(1)查看系统级的配置
git config --system --list
(2)查看当前用户(本地)的配置:用户名、密码(这是必须要配置的)
git config --global --list
补充:当你安装好Git之后,首先要做的时期就是设置你的用户名和密码,这是非常重要的。因为每次Git提交都会使用该信息,它会被永远的嵌入到提交中。
git config --global user.name "用户名"
git config --global user.email [邮箱]
Git配置文件:
(1)系统配置gitconfig文件
打开该文件,如下图所示,
可以看到与下面这条命令
git config --system --list
查找的配置文件中的配置是一一对应的。
(1)用户配置gitconfig文件:只适用于当前用户的配置
打开该文件,如下图所示,这里可以直接编辑文件,通过命令设置后会响应到这里。
可以看到与下面这条命令
git config --global --list
查找的配置文件中的配置是一一对应的。
Git基本理论:核心所有的时间都需要源于这个理论
1、工作区域:
- 工作区:存放项目代码
- 暂存区:用于临时存放改动的代码部分,其实只是一个文件,保存即将提交的文件列表信息
- 本地仓库区:也就是本地仓库,用来安全存放数据,其中包括你要提交到所有版本的信息。
- 远程仓库:一般都是代码托管的服务器,指的是Github、Gitee
2、Git工作的基本流程:
- 在工作目录中添加、修改文件
- 在添加或修改好文件之后,我们需要将进行版本管理的文件放入暂存区域,git add
- 将暂存区域的文件提交到git仓库,git commit
- git push到远程仓库
三种状态:已修改、已暂存、已提交。
Git项目搭建
在本地搭建一个仓库:
(1)创建全新的仓库
git init
运行效果如下图所示,
文件目录下会出现下图所示,
(2)git clone克隆远程的仓库
git clone [url]
eg :
我们想要远程克隆该git仓库时,需使用下面命令,
git clone https://github.com/apache/echarts.git
之后就会在文件目录下出现一个新的文件夹。
Git文件操作
1、文件的4种状态:
- Unstacked未跟踪::此时可以使用 git add 命令
- Unmodify未修改:此时可以使用 git rm 命令
- Modified已修改:此时可以使用 git add 或者 git checkout 命令
- Staged暂存:此时可以使用 git commit 命令或者 git reset HEAD filename命令
eg:
(1)不做什么操作,先输入如下命令,
(2)在文件夹下右键新建一个“hello.txt”文件,
之后再次执行该命令,
(3)将文件添加到暂存区里,执行如下命令之后,可以看到该文件的状态已经变成“待提交”。
(4)使用如下命令将该文件提交到本地仓库
# 提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m "消息内容"
当提交到本地仓库中时,再使用 git status 命令查看,说明已经没有东西需要提交了,说明已经清空。
2、忽略文件“.gitignore”
*.txt #忽略所有 .txt结尾的文件,则上传就不会被选中
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #忽略 doc/notes.txt 但不包括 doc/server/arch.txt