集中式版本控制系統,版本庫是集中存放在中央服務器的。用戶都是用本身的電腦,要先從中央服務器取得最新的版本,而後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