集中式版本控制系统,版本库是集中存放在中央服务器的。用户都是用本身的电脑,要先从中央服务器取得最新的版本,而后coding,最后把代码推送到中央服务器。
集中式版本控制系统的弊端是须要联网工做;
linux
分布式版本控制系统根本没有“中央服务器”,每一个人的电脑上都是一个完整的版本库,coding时无需联网,版本库就在各个用户的本地电脑上。
相比于集中式版本控制,安全性更高,每一个用户电脑都有完整的版本库。
Git拥有强大的分支管理,这是CVS、SVN不具有的优点。git
(1)linux下:sudo apt-get install git
(2)windows下:安装gitbushwindows
(1)建立工做区
在本地电脑里建立空目录,即为工做区,这个目录里的全部文件均可以被git管理,每一个文件的修改、删除都可以被git追踪,便于后期追踪历史记录,在某个时刻能够还原;
(2)使用git管理仓库(版本库)
git init
在该仓库中会多一个.git目录;(若是不须要git管理,则删除这个目录就能够实现)
注意:
若在linux看不到这个目录,可使用ls -ah查看这个隐藏的目录;
(3)git改动
版本控制系统没法追踪图片、视频等二进制文件,且Microsorf的word格式的也是二进制格式,因此也没法追踪,只能知道其大小的改变。版本控制系统只能追踪文本文件的改动,如txt文件。安全
如在git仓库中添加一个test.txt文件服务器
git add test.txt
分布式
git commit -m “提交test.txt文件”
-m后面输入的是本次提交的说明,便于后期查看提交记录;
注意:
添加文件到Git仓库,分两步:
使用命令git add <file>
,注意,可反复屡次使用,添加多个文件也可使用git add -u
一次性添加追踪的文件;
使用命令git commit -m <message>
,完成。版本控制
git log
git log --pretty=oneline
每提交一个版本,git就会将它们自动串成一条时间线;日志
git diff <filename>
查看工做区和版本库里最新版本的区别:
git diff HEAD -- <filename>
code
git show <commit-hash-id>
视频
git log
git log –author=xiaoming
一个压缩后的每一条记录只占一行的输出:
git log –pretty=oneline
git log --name-status
git log --graph --pretty=oneline --abbrev-commit
(1)使用git log查看提交记录进行回退
git reset --hard xxx
若要回退到上一个版本:
git reset --hard HEAD^
或者使用commit-id(前几位便可)
git reset --hard commit-id
(2)若想要恢复以前的回退
使用git reflog
查看commit-id