为什么用Git
要把文档还原到编辑前的状态,大家都是怎么做的呢?
最简单的方法就是先备份编辑前的文档。使用这个方法时,我们通常都会在备份的文档名或目录名上添加编辑的日期。但是,每次编辑文档都要事先复制,这样非常麻烦,也很容易出错。
再加上,如果像上图那样毫无命名规则的话,就无法区分哪一个文档是最新的了。而且,如果是共享文件的话,应该加上编辑者的名字。还有,那些文档名字没有体现修改内容。
另外,如果两个人同时编辑某个共享文件,先进行编辑的人所做的修改内容会被覆盖,相信大家都有这样的经历。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2dTqqVPh-1605697581545)(https://backlog.com/git-tutorial/cn/img/post/intro/capture_intro1_1_2.png)]
Git版本管理系统就是为了解决这些问题应运而生的。
使用Git进行版本管理
Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。
Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。
而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCl0Hhra-1605697581547)(https://backlog.com/git-tutorial/cn/img/post/intro/capture_intro1_1_3.png)]
用Git管理文件的话,更新的历史会保存在Git,所以,不需要备份文件,非常的方便。
安装Git
首先下载你的系统的Git客户端
这里以Windows举例, 下载之后, 双击安装即可
安装完成之后请执行 version命令,如果显示Git的版本就说明安装成功了。
git --version
管理历史记录的仓库
仓库 (Repository)是记录文件或目录状态的地方,存储着内容修改的历史记录。在仓库的管理下,把文件和目录修改的历史记录放在对应的目录下。
远程仓库和本地仓库
首先,Git的仓库分为远程仓库和本地仓库的两种。
远程仓库:
配有专用的服务器,为了多人共享而建立的仓库。
本地仓库:
为了方便用户个人使用,在自己的机器上配置的仓库。
仓库分为远程和本地两种。平时用手头上的机器在本地仓库上操作就可以了。如果想要公开在本地仓库中修改的内容,把内容上传到远程仓库就可以了。另外,通过远程仓库还可以取得其他人修改的内容。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHrlZBMS-1605697581552)(https://backlog.com/git-tutorial/cn/img/post/intro/capture_intro1_2_2.png)]
创建仓库
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是复制远程仓库。
接下来要在本地新建仓库,创建一个名称为「demo」的空目录,并把它放在Git管理之下。
下面将以这个目录进行教程讲解。
首先在任意一个地方创建demo目录。然后使用init命令把该demo目录移动到本地Git仓库。
按照以下步骤把新创建的demo目录设置到Git仓库
桌面空白处右键打开 Git Bash, 执行命令:(git命令与linux命令基本相同)
$ mkdir demo
$ cd demo
$ git init
工作树和索引
在Git管理下,大家实际操作的目录被称为工作树。
在仓库和工作树之间有索引,索引是为了向仓库提交作准备的区域。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zn5PfhQO-1605697581553)(https://backlog.com/git-tutorial/cn/img/post/intro/capture_intro1_4_1.png)]
Git在执行提交的时候,不是直接将工作树的状态保存到仓库,而是将设置在中间索引区域的状态保存到仓库。因此,要提交文件,首先需要把文件加入到索引区域中。
所以,凭借中间的索引,可以避免工作树中不必要