1 什么是GIT
1.1 什么是版本控制
软件版本控制简单点说就是把你以前每次在工程中的修改都保存起来,以便你可以快速恢复到以前的任意一个版本。
1.2 版本控制的历史
- 最简单的版本控制是每当你完成一件工作,就把整个工程目录拷贝下来放到一个统一的文件夹里(如下图),这是最简单的方式。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tk6K8Xw-1610869393962)(Git.assets/image-20210117114936036.png)]](https://i-blog.csdnimg.cn/blog_migrate/7c03d480cbc1c4fc5fde22f9c00d0281.png)
但是这种方法也有很多弊端,比如有很多没有改动的文件也会被重复copy,会极大滴浪费存储资源。
- 因此,研究出一套版本控制工具使版本控制变的简洁,自动化显得十分重要。对于本地版本控制,主要有RCS(本地版本控制)。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xWJTWsi-1610869393965)(Git.assets/image-20210117133241320.png)]](https://i-blog.csdnimg.cn/blog_migrate/2ed0cf75b784aa3234db638c92d47310.png)
- 除了在本地(自己电脑上)进行版本控制,现在还有很多这样的需求:我想和其他人共享我的历代版本。为了解决这个问题,CVCS诞生了,例如CVS。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oz3rcKXT-1610869393967)(Git.assets/image-20210117133649965.png)]](https://i-blog.csdnimg.cn/blog_migrate/70c255dfebecf78ba51431811b4f58a5.png)
但是这种也有很多问题,例如存放共享仓库的主机宕机了,磁盘坏掉了,这些会导致开发者之间工程版本的不同步,以及数据丢失。
- 所以,分布式版本控制系统DVCSs来了。例如Git, Mercurial,
Bazaar,Darcs都是分布式版本控制系统。计算机A会从服务器拷贝整个仓库,如果服务器宕机,那么服务器就会从AB恢复所有数据。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvThpCYH-1610869393971)(Git.assets/image-20210117134612451.png)]](https://i-blog.csdnimg.cn/blog_migrate/5ff8aa01eb0eff46096e2d0956f9f150.png)
另外,这些分布式版本控制系统还可以让你很轻松的同时和数个团对一起合作开发。
1.3 GIT的历史
2002,linux内核开发者团队使用DVCS BitKeeper。
2005年,BitKeeper取消免费使用。Linux开发者团队决定开发自己的版本控制工具GIT。
2005-now,GIT获得很好的发展并被广泛使用。
GIT是免费的!
1.4 什么是GIT
使用GIT之前如果能理解GIT是什么以及它能做什么,那么我们再使用它就会变得很容易。
先来看一下传统的CVS是如何存储数据的吧!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAm3kVnr-1610869393973)(Git.assets/image-20210117142659260.png)]](https://i-blog.csdnimg.cn/blog_migrate/7e3d8cb6961ab35b2da41558ab939987.png)
可以从图中看到,随着版本的提升,如果某个版本内,其先前版本内的文件没有改变,那么这个版本内将不会有任何改变,若发生了改变,则会存储改变后的文件。
来看看GIT:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CV37mau8-1610869393975)(Git.assets/image-20210117142944408.png)]](https://i-blog.csdnimg.cn/blog_migrate/f035082437375a9fd7d038e16ca805c7.png)
每一个版本都有整个文件的完整快照,如果某个版本内的文件发生了改变,则存储新文件(如A1到A2),否则存储上一个版本对应文件的引用,这样的安排对于为工程添加分支(会在后面说分支的作用)很是方便。
GIT的其它优点:
- 可以快速的查看历史版本
- GIT通过SHA-1(摘要算法)来存储文件,所以如果被修改,其摘要(哈希值)也会不同。
- 当你把数据提交到GIT,它就几乎不会丢失
GIT的三种工作状态:
- modified 已更改
- staged 存入暂存区等待提交
- committed 已提交
由此我们可以直到GIT工程的主要工作部分如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98Vbm2WL-1610869393978)(Git.assets/image-20210117144957767.png)]](https://i-blog.csdnimg.cn/blog_migrate/2cb645034e920842158c2d29cef6352a.png)
首先是从GIT仓库拉取工程,修改后存储暂存区(这里的东西会被下次commit提交),最后提交。
1.5GIT命令行
在电脑上使用GIT一般使用命令行方式:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9JfmAIW-1610869393979)(Git.assets/image-20210117145330392.png)]](https://i-blog.csdnimg.cn/blog_migrate/a3e84401e77c9df37dfde68c87c35f29.png)
界面如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRbaaBio-1610869393980)(Git.assets/image-20210117145358083.png)]](https://i-blog.csdnimg.cn/blog_migrate/b50a3813cc57842a545e9cc072e9fbdc.png)
就像cmd命令行,使用起来非常方便。
1.6 安装git
1.6.1 在Linux上安装GIT
- 在centos上安装
sudo dnf install git-all
- 在Debian和Ubuntun上安装
sudo apt install git-all
1.6.2 在苹果电脑上安装
- 在命令行直接运行
git --version
- 或者从官网下载
https://git-scm.com/download/mac
1.6.3 在win上安装
- 直接去官网下载,就像安装普通软件一样简单
https://git-scm.com/download/win
- 安装GitHub Desktop,它自带一个GIT Bash和GIT GUI
1.7 GIT配置
GIt所有的配置都保存在gitconfig文件里。
- 浏览所有配置文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTjpvrCI-1610869393981)(Git.assets/image-20210117150805262.png)]](https://i-blog.csdnimg.cn/blog_migrate/926652492fe6ac75cc84445f6d591109.png)
- 登录配置,初次使用Git Bash,需要登陆
#--global 全局配置
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
- 修改默认分支名字(默认是master),修改为main
git config --global init.defaultBranch main
- 查看配置
git config --list #产看全部
git config user.name #只看名字
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8XHxHzu-1610869393983)(Git.assets/image-20210117151503662.png)]](https://i-blog.csdnimg.cn/blog_migrate/47843862b92d2a5615093afcad4bb915.png)
- 获得帮助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
$ git add -h
git help commit
会自动打开帮助网页。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YeXVTnfA-1610869393984)(Git.assets/image-20210117151752371.png)]](https://i-blog.csdnimg.cn/blog_migrate/9021caa2162a01f64dce1874b0a09e15.png)
git commit -h
只在命令行窗口显示帮助文档。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2r9anaW5-1610869393984)(Git.assets/image-20210117151952008.png)]](https://i-blog.csdnimg.cn/blog_migrate/3a9b22f64c46a917e0181c9eef284537.png)
欢迎各位大佬一起学习!
394

被折叠的 条评论
为什么被折叠?



