一、什么是版本控制?
举个例子:大家写毕业论文,总是不停的修改。有时候修改了几次后发现,还是原来的好,但是已经删除了并且保存了,很痛苦,要是能后悔就好了。有时候还会遇见,修改了很多种情况,自己都不知道到底哪一份是最终版。通常的命名为,《毕业论文最终版》,《毕业论文最终版1.0》,《毕业论文最终版2.0》,《毕业论文终结版》,《毕业论文终结版X.0》等等,电脑上保存的太多的版本了,而版本控制器的诞生就是为了解决这个问题的。能够跟踪记录你对一个文件,工程,或者一个项目每一次修改,记录你的每一个版本,让你从此再也不混乱。PS:版本控制器不是程序员才用,写毕业论文也可以用 😀
二、企业使用版本控制器有什么作用?
1、后悔,我写了100行,发现不好了,一顿修改,改完后发现,还没有原来的好,或者直接崩溃了,想反悔,怎么返,反不了?使用版本控制器版本回馈,轻松搞定。
2、手动备份 ,版本1.0 ,版本2.0 ,版本3.0 。。。。每一个都保存到你的电脑上,你会不会疯掉,使用版本控制器,轻松搞定。
3、版本混乱,那么多版本你怎么知道每个是什么?使用版本控制器查看版本日志,轻松搞定。
4.、你们公司来了一个新人,一顿乱改代码,后发他发现在公司呆不下去了,就走了,改乱的代码怎么办?版本回馈,轻松搞定。
5、责任问题,在公司代码出了Bug,耽误了工期,责任是谁的,要讲证据,怎么办?版本控制器可以查看操作者,轻松搞定。
6、权限的划分:你刚到公司就是一个小员工,肯定不能让你拿到核心代码,但是又不能不让你写代码,怎么办?没关系版本控制器给你分配权限,可以让你只负责简单的功能,轻松搞定。
三、常见的版本控制器有哪些?
目前主流的版本控制器有SVN和git,但是git得使用者已经越来越多了。
四、git的起源(对于牛逼的新的理解)
git的作者是Linus,Linus还管理着Linux社区,Linux社区最早是Linus一个人手动合并世界各地Linux开发者发给他的代码,这个工作量随着Linux的壮大,慢慢变得工作量很大。到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司怒了,要收回Linux社区的免费使用权。
Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
五、git是什么?
git是一种分布式版本控制系统。而SVN是集中式版本控制系统。
六、什么分布式?
举个例子:大家看电影,晚上回到家都可以用电脑看,不用在一起,这种在家看电影的方式叫做分布式或者分散式。而如果我们去电影院看一个刚上映的电影,就需要我们和朋友一起相聚在电影院才能看,这样相聚在一起的方式就是集中式。
七、什么是仓库?
git对版本的所有管理需要记录,这个保存git记录的地方就叫做仓库,这个仓库分为两种,本地仓库和远程仓库
八、创建本地仓库的步骤
1、git init
2、配置仓库
2.1>告诉git你是谁
git config user.name Se7eN_HOU
2.2>告诉git怎么联系你
git config user.email 641037548@qq.com
上面是一次性的配置,用户信息会被配置到被管理工程文件夹下面的.git文件夹里面
下面是一种永久性的配置
git config --global user.name Se7eN_HOU
git config --global user.email 641037548@qq.com
在前往->个人->.gitconfig文件里面可以查看
九、查看git的状态(git status)
1、Untracked files(红色文件):新添加的文件或者新修改的工作区,没有被添加到暂缓区的
2、Changes not staged for commit(红色文件):文件已经修改,但是还没有放入暂存区域
3、Changes to be committed:(绿色文件):将工作区的代码添加到暂缓区,可以被提交到代码仓库中
4、nothing to commit:说明已经没有需要提交的了
这里提到了工作区,缓存区和本地仓库
本地仓库.png十、提交到本地服务器的命令
10.1、最开始的状态
git status.png
10.2、通过git add . 命令(注意add后面有个.点,表示添加所有的文件)将文件添加到缓存区
git add.png10.3 将文件通过commit命令,添加到仓库
git commit.png
注意1:在commit后面如果没有添加-m说明修改了什么,也就是修改日志的话, 就会自动进入一个vim界面,要求我们输入日志信息。按 “i" 进入编辑页面。输入完毕后按Esc后接着:wq保存退出
注意2:git每commit一次都要先add一次
十一、git的命令修改使用alias
git config alias.st “status”
git config alias.ci “commit”
等等还有很多都可以修改,这里之举这两个例子
十二、查看版本号
git log ![Uploading Pasted Graphic 7_518573.png . . .].png1、git log
git reflow.png2、 git reflog只能查看到版本号的前7位
3、配置带颜色的log别名,先把下面的代码复制到终端中运行一次
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git lg.png
十三、版本回馈
回到当前版本,放弃所有没有提交的修改
git reset --hard HEAD(- -hard:表示强制回馈)
回到上一个版本
git reset --hard HEAD^
回到之前第100个修订版本
git reset --hard HEAD~100
回到指定版本号的版本
git reset --hard e695b67
十四、总结
好吧,太困了,下次接着给大家分享远程仓库的操作。睡觉 😴😴😴😴😴😴😴😴😴😴😴😴😴
网友评论