本文使用Github图床,可能有些图片无法正常展示
Linux 系统整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码,BitKeeper 的东家 BitMover 公司也免费授权 Linux 社区使用这个版本控制系统。后来 BitMover 公司发现社区有人试图破解 BitKeeper 的协议,于是 BitMover 公司收了回 Linux 社区的免费使用权。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
SVN是集中式版本控制系统,版本库是集中放在中央服务器的。在开发人员工作的时候,用的都是自己电脑,所以首先需要从中央服务器下载最新的版本,然后进行开发,开发完成后需要把自己开发的代码提交到中央服务器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HHCJupcP-1655054213938)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220612214306268.png)]
缺点:1. 服务器单点故障。
2. 容错性差。
Git是分布式版本控制系统,分为两种类型的仓库:本地仓库和远程仓库。
本地仓库指的是开发人员自己电脑上的git仓库。
远程仓库指的是远程服务器上面的仓库。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycAmO8xs-1655054213939)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/p20220612214417.png)]
简单的工作流程介绍:
我们安装完Git之后的第一件事一定是设置用户名称和用户email。每次Git提交都会使用该用户信息。(这个可以联想一下QQ,我们使用QQ时一定要先登录,登录完成后给好友发送信息,对方才知道是谁给他发送的消息)。
一般是用下面两个命令来设置环境:
git config --global user.name “your name”
git config --global user.email “your email”
设置完成后我们可以通过下面的命令可以查看配置信息:
git config --list
此时,在配置信息中就会出现我们的user.name和user.email。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyuNvqiD-1655054213943)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/p20220612225621.png)]
或者在下面的目录中C:\Users\用户名中找到.gitconfig文件,打开后就能看到我们的配置信息了。
获取Git仓库可以使用命令git init来获取git仓库。
上图是一个空的文件夹,还不是一个Git仓库!!!在文件夹中右键点击任意位置,然后左键单击Git bash here打开命令窗口。输入上面的git init并且回车。
就会自动生成.git文件。此时才是一个.git仓库。如果执行完上面的操作发现什么都没有,那是因为.git文件是一个隐藏文件,我们需要将隐藏文件显示出来:点击上面的查看,在隐藏的项目前面将√打上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9yKDYk0-1655054213948)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220612231918675.png)]
- 版本库:.git文件就是版本库,存储了许多信息包括配置信息,日志信息和文件版本信息。(这个文件一般别去动它!!!)
- 工作区:包含.git文件夹的目录就是工作目录,主要用来存放代码。
- 暂存区:.git文件夹中有很多的文件,其中有一个index文件就是暂存区(stage)。暂存区是一个临时保存修改文件的地方。
我们其实可以这样理解:
工作区是我们能修改或者查看的地方,假设我们在逛淘宝,淘宝琳琅满目的商品和各种评论就可以看做工作区。
暂存区是我们暂时存放修改文件的地方,可以看做是购物车。
版本库是存放我们的配置信息,日志信息和文件版本信息可以看做是淘宝的订单信息。
git仓库里面的文件状态有untracked (未被Git跟踪) 和tracked(已被Git跟踪)两种状态。我们可以使用git status来查看文件状态。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bNIxYF7f-1655054213949)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220613000158609.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AgxMBWSl-1655054213950)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220613000259526.png)]
以上都是git的状态,可以通过status来查看。
查看文件状态:
第一种方式:git status
第二种方式:**git status -s **
为了方便看上面说到的状态,我将Hello.java提交后再修改并添加到暂存区中,所以显示的是modified状态。还新建了一个Dog.java文件且未添加到暂存区,所以是untracked状态。
很明显第二种更加简便看到各个文件的状态。
将文件加入到暂存区中:
git add 文件名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ysWXJKzC-1655054213952)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220613002819407.png)]
将文件从暂存区取消暂存:
git reset HEAD 文件名
刚刚已经Dog.java文件添加到暂存区了,现在将它从暂存区中取消暂存。
将暂存区的文件提交到本地仓库:
git commit -m “注释信息”
刚刚已经将Hello.java文件添加到了暂存区,下面将它提交到本地仓库。
提交完成后再查看状态就只有一个Dog.java文件了。
删除文件:
git rm 文件名 然后执行上面的提交操作
刚刚已经将Hello.java文件提交了,结果发现bug出现了,必须将它删除。
此时的文件彻底删除了。
6.将文件添加到忽略列表:
touch .gitignore
Git使用.gitignore文件来创建保存git忽略文件。因为Windows系统无法直接创建该忽略文件,只能在git bash 命令行里面进行创建。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VtuKYsVw-1655054213957)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220613004749658.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VpeBRjLg-1655054213958)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/image-20220613010226898.png)]
在忽略文件中输入上述内容表示忽略掉所有的以.txt结尾的文件。
从状态中可以看到,我的a.txt文件没有任何的状态,这是因为已经被git忽略掉了。
查看日志文件:
git log
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xd4iBHyH-1655054213959)(https://cdn.jsdelivr.net/gh/yuzesheng/markdownpictures@main/img/p20220613010706.png)]
我们可以通过git log查看日志并且知晓历史操作。可以用来回退版本。