Git诞生
由Linux系统创建人Linus为了方便管理Linux代码,花了两周的时间用C语言写了这个分布式管理系统。
在此之前的3年使用的是BitMover公司BitKeeper版本管理软件,期间由于不止一个人想破解BitKeeper的协议,又被BitMover公司监控到了,所以终止使用。
集中式本本控制系统——SVN、分布式版本控制系统——git
集中式管理特点:
1.版本库是集中放在中央服务器,需要的时候先从中央服务器拉取最新代码,再工作。中央服务器就好比一个图书馆,你想要修改其中一本,先要从图书馆借出来,改完后再还给图书馆。
2.弊端:需要联网,提交速度看网速;中央服务器一旦出问题,版本控制将丢失;
分布式管理特点:
1.无需联网
2.每个人的电脑都保留完整的版本管理
git 基础指令
git 时光机——HEAD是当前所在的版本
主要涉及指令
git log 查看提交历史以及commit id
git reflog 可以查看到所有提交过的log id,版本找回的时候会用到
git reset --hard commit id(需要回滚到的版本的commit id)
例如:当前有好几个提交的版本(使用git log查看),现在我想回到“添加add2”这个版本
执行git reset --hard HEAD^ 如下图,再查看历史就已经到上一个版本了
详细可参考此处代码回滚相关指令
如果此时我关闭了终端,但是想再回到c.js怎么办?
使用git reflog可以查看到“新增c.js”的Commit id
找到commit id后执行git reset 再查看git log就会发现已经回到想要的版本了
有时候会出现无法拉取到仓库最新代码,可以尝试
git reset --hard origin/master
本地修改的代码还没有git add,可以执行一下恢复
git reset --hard