赞
踩
软件版本控制简单点说就是把你以前每次在工程中的修改都保存起来,以便你可以快速恢复到以前的任意一个版本。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tk6K8Xw-1610869393962)(Git.assets/image-20210117114936036.png)]](https://img-blog.csdnimg.cn/20210117154513166.png)
但是这种方法也有很多弊端,比如有很多没有改动的文件也会被重复copy,会极大滴浪费存储资源。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xWJTWsi-1610869393965)(Git.assets/image-20210117133241320.png)]](https://img-blog.csdnimg.cn/2021011715453278.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oz3rcKXT-1610869393967)(Git.assets/image-20210117133649965.png)]](https://img-blog.csdnimg.cn/20210117154555735.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
但是这种也有很多问题,例如存放共享仓库的主机宕机了,磁盘坏掉了,这些会导致开发者之间工程版本的不同步,以及数据丢失。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvThpCYH-1610869393971)(Git.assets/image-20210117134612451.png)]](https://img-blog.csdnimg.cn/20210117154620528.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
另外,这些分布式版本控制系统还可以让你很轻松的同时和数个团对一起合作开发。
2002,linux内核开发者团队使用DVCS BitKeeper。
2005年,BitKeeper取消免费使用。Linux开发者团队决定开发自己的版本控制工具GIT。
2005-now,GIT获得很好的发展并被广泛使用。
GIT是免费的!
使用GIT之前如果能理解GIT是什么以及它能做什么,那么我们再使用它就会变得很容易。
先来看一下传统的CVS是如何存储数据的吧!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAm3kVnr-1610869393973)(Git.assets/image-20210117142659260.png)]](https://img-blog.csdnimg.cn/20210117154638892.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
可以从图中看到,随着版本的提升,如果某个版本内,其先前版本内的文件没有改变,那么这个版本内将不会有任何改变,若发生了改变,则会存储改变后的文件。
来看看GIT:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CV37mau8-1610869393975)(Git.assets/image-20210117142944408.png)]](https://img-blog.csdnimg.cn/20210117154652356.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
每一个版本都有整个文件的完整快照,如果某个版本内的文件发生了改变,则存储新文件(如A1到A2),否则存储上一个版本对应文件的引用,这样的安排对于为工程添加分支(会在后面说分支的作用)很是方便。
GIT的其它优点:
GIT的三种工作状态:
由此我们可以直到GIT工程的主要工作部分如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98Vbm2WL-1610869393978)(Git.assets/image-20210117144957767.png)]](https://img-blog.csdnimg.cn/20210117154704901.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
首先是从GIT仓库拉取工程,修改后存储暂存区(这里的东西会被下次commit提交),最后提交。
在电脑上使用GIT一般使用命令行方式:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9JfmAIW-1610869393979)(Git.assets/image-20210117145330392.png)]](https://img-blog.csdnimg.cn/20210117154714881.png)
界面如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRbaaBio-1610869393980)(Git.assets/image-20210117145358083.png)]](https://img-blog.csdnimg.cn/20210117154728662.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
就像cmd命令行,使用起来非常方便。
sudo dnf install git-all
sudo apt install git-all
git --version
https://git-scm.com/download/mac
https://git-scm.com/download/win
GIt所有的配置都保存在gitconfig文件里。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTjpvrCI-1610869393981)(Git.assets/image-20210117150805262.png)]](https://img-blog.csdnimg.cn/20210117154749644.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
#--global 全局配置
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
git config --global init.defaultBranch main
git config --list #产看全部
git config user.name #只看名字
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8XHxHzu-1610869393983)(Git.assets/image-20210117151503662.png)]](https://img-blog.csdnimg.cn/20210117154801349.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
$ git add -h
git help commit
会自动打开帮助网页。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YeXVTnfA-1610869393984)(Git.assets/image-20210117151752371.png)]](https://img-blog.csdnimg.cn/20210117154814241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
git commit -h
只在命令行窗口显示帮助文档。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2r9anaW5-1610869393984)(Git.assets/image-20210117151952008.png)]](https://img-blog.csdnimg.cn/20210117154824841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTQ4NDYx,size_16,color_FFFFFF,t_70)
欢迎各位大佬一起学习!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。