git是乙個開源的分布式版本控制系統,
是目前世界上最快、最簡單、也是最流行的版本控制工具,
它可以有效、高速的管理從很小到非常大的專案版本。
git是linus torvalds為了幫助管理linux核心原始碼,
而開發的一款開源的免費的版本控制工具。
git主要用途:
1.儲存每一次修改,便於追蹤檢視專案中所有檔案的變化;
2.同時使用多種方式實現乙個任務(並行分支),然後挑選最好的實現留下;
3.方便多人協作開發同乙個專案,保持專案的一致。
版本控制系統是一種記錄乙個或多個檔案內容變化,
以便將來查閱特定版本修訂情況的系統。
該系統通常用於管理軟體源**檔案的版本,
實際上對任何型別的檔案都能進行版本控制。
如果你是位作家或設計師,
可能會需要儲存某個檔案的所有修訂版本,
通常情況下需要手動備份這些檔案。
採用版本控制系統(vcs)管理所有檔案版本,
可以回溯檔案之前的所有狀態,
甚至整個專案回退到某個歷史狀態。
這樣就可以隨心所欲的進行創作,
而不用擔心修改之前的檔案丟失問題。
你可以比較檔案兩個版本之間的變化,
檢視專案中其他人的修改記錄,
即使有人誤改誤刪專案中的檔案,
也可以輕鬆恢復到原樣。
通常大家會複製整個目錄來備份專案和檔案,
或許還會改名加上備份時間以示區別。
不過有時候會混淆所在的工作目錄,
一旦弄錯檔案丟了資料就沒法撤銷恢復。
為了解決這個問題,
人們開發了許多種本地版本控制系統,
大多都是採用某種簡單的資料庫來記錄檔案的歷次更新差異。
接下來人們又遇到乙個問題,
如何讓在不同電腦上的開發者協同工作?
於是集中化的版本控制系統應運而生。
這類系統有cvs,svn等,
它們有乙個集中管理的伺服器,
儲存所有檔案的修訂版本,
而協同工作的人們通過客戶端連線伺服器,
取出最新的檔案或者提交檔案。
相較於本地版本控制系統,
每個人都可以看到專案中的其他人正在做些什麼。
管理員也可以輕鬆掌控每個開發者的許可權,
並且管理乙個集中系統遠比維護各個終端本地資料庫容易。
缺點是**伺服器的單點故障,
如果伺服器宕機,那麼在這段時間內,
誰都無法提交更新,也就無法協同工作。
要是**伺服器的磁碟發生故障,
而沒有備份,就會有丟失資料的風險。
同樣本地版本控制系統也存在類似問題。
集中式版本控制系統最大問題就是必須聯網,
而且對頻寬和網速要求很高,
如果在區域網內還好,頻寬和速度通常是夠的,
否則既不能提交也不能回滾,
更不能檢視檔案的歷史記錄,
對於使用者的工作效率是個巨大的打擊。
於是分布式版本控制系統面世了。
這類系統有git,mercurial等,
客戶端並不只提取最新版本的檔案快照,
而是把**倉庫完整地映象下來。
這麼即使任何一處協同工作用的伺服器發生故障,
事後都可以用任何乙個客戶端映象出來的本地倉庫恢復。
因為每一次的提取操作,
實際上都是一次對**倉庫的完整轉殖,
通過這種機制實現了分布式去中心化。
這類系統可以指定和多個不同的遠端**倉庫進行互動。
你可以在同乙個專案中,分別和不同工作小組的人相互協作。
你可以根據需要設定不同的協作流程,比如層次模型式的工作流,
而這在以前的集中式系統中是無法實現的。
我們使用比較多的集中式版本控制系統是svn,
經常會拿來和分布式版本控制系統git進行比較,
git本地倉庫包含**庫還有歷史庫,
在本地的環境開發就可以記錄歷史,
而svn的歷史庫存在於**倉庫,
每次對比與提交**都必須連線到**倉庫才能進行。
使用svn必須聯網,否則只能罷工,
而git只在和他人同步**時需要聯網,
由於git本地記錄和分支的關係,
合併同步**的工作也非常方便。
當然git的優勢不單是不必聯網這麼簡單,
還有git極其強大的分支管理,
在git中建立乙個分支或者標籤是非常簡單的,
但是svn建立乙個分支就必須複製整個目錄,
這就把svn等遠遠拋在了後面。
另外svn必須有乙個"**伺服器",
而git每乙個客戶端都可以作為伺服器,
通常我們會約定乙個"偽**伺服器"同步**。
分布式版本控制系統根本沒有"**伺服器",
每個人的電腦上都是乙個完整的版本庫,
那麼多人開發如何協作呢?
比如你在自己電腦上改了檔案a,
你的同事也在他的電腦上也改了檔案a,
這時你們倆之間只需把各自的修改推送給對方,
就可以互相看到對方的修改了。
在實際使用分布式版本控制系統的時候,
很少在兩人之間的電腦上推送版本庫的修改,
因為可能你們倆不在乙個區域網內,
兩台電腦互相訪問不了,
也可能今天你的同事請假了,
他的電腦壓根沒有開機。
因此分布式版本控制系統通常有一台"偽**伺服器",
但這個伺服器的作用僅僅是用來方便"交換"大家的修改,
沒有它大家也一樣幹活,
換一台伺服器作為"偽**伺服器"也很方便。
git官方教程中文版(支援多語言)
git教程_廖雪峰的官方**
GIT分布式版本控制系統
git是乙個開源的分布式版本控制系統,用以有效 高速的處理從很小到非常大的專案版本管理。分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖 git clone 在本地機器上拷貝乙個完整的git倉庫。專案使用git的一般情景 1 從伺服器上轉殖完整的git倉庫或者建立本地的git...
git分布式版本控制系統
1.git三個工作區 2.使用前配置3.git命令 本地 git init 建立版本庫 在當前資料夾下多出乙個.git檔案 git add 新增到暫存區 git commit m 版本說明 新增到歷史區 git log 檢視日誌 git reflog 檢視所有日誌 git diff 比較工作區和暫存...
GIT分布式版本控制系統
git是一款免費 開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案。1 git的讀音為 g t git是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本管理。2 git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼...