1. 集中式版本控制缺點:中央服務器的單點故障。git
分佈式版本控制優勢:客戶端並不僅提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。github
這麼一來,任何一處協同工做用的服務器發生故障,過後均可以用任何一個鏡像出來的本地倉庫恢復。vim
由於每一次的提取操做,實際上都是一次對代碼倉庫的完整備份。服務器
它也有中央服務器的概念,不過這也只是相似於其餘備份的客戶端,做用只是利於其餘客戶端克隆而已。編輯器
2. 直接記錄快照,而非文件差別。分佈式
Git 和其餘版本控制系統的主要差異在於,Git 只關心文件數據的總體是否發生變化,而大多數其餘系統則只關心文件內容的具體差別。工具
每次提交更新時,它會縱覽一遍全部文件並對文件做一快照(即作一次備份),而後保存一個指向此次快照的索引。spa
3. 在保存到 Git 以前,全部數據都要進行內容的校驗和(checksum)計算,並將此結果做爲數據的惟一標識和索引。即不可能在你修改了文件或目錄以後,Git 一無所知。.net
4. 在 Git 內都只有三種狀態:已修改(modified),已暫存(staged),已提交(committed)。版本控制
5. Git初始配置: git config 命令
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
git config --global core.editor vim //文本編輯器
git config --global merge.tool vimdiff //差別分析工具
git config --list //查看配置信息
/etc/gitconfig
文件:系統中對全部用戶都廣泛適用的配置。若使用 git config
時用 --system
選項,讀寫的就是這個文件。~/.gitconfig
文件:用戶目錄下的配置文件只適用於該用戶。若使用 git config
時用 --global
選項,讀寫的就是這個文件。.git/config
文件):這裏的配置僅僅針對當前項目有效。.git/config
裏的配置會覆蓋 /etc/gitconfig
中的同名變量。1. 初始化
git init git add . git add <file> git commit -m "init" git clone git://github.com/schacon/grit.git git clone git://github.com/schacon/grit.git mygrit
2. 基本操做
git status