版本控制系統(version control system),是一種記錄一個或若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。版本控制系統不只能夠應用於軟件源代碼的文本文件,並且能夠對任何類型的文件進行版本控制。用的比較多的如svn,git等。git
分佈式版本控制系統(Distributed Version Control System),軟件開發過程當中,要解決多人協做的問題,須要有一個版本控制系統,用來合併和管理多人對同一個項目的開發和修改。版本控制有兩種方式,一種是集中式版本控制系統,顧名思義,是把代碼的管理和同步放在同一個服務器端來進行,如CVS,SVN,因爲有完善的權限系統,以及統一的服務端,適合商業軟件的開發;而分佈式版本控制系統,則至關於把集中式版本控制系統的服務端和客戶端都交給參與開發的客戶端來保管,只有須要不一樣開發者合併代碼時,才須要一箇中轉站來完成。服務器
Git是一款免費的、開源的分佈式版本控制系統,旨在快速高效地處理不管規模大小的任何軟件工程。Git很容易學習,且小步快走,有着閃電般的性能。它超越了SCM工具,好比SVN、CVS、Perforce、ClearCase等,具體體如今方便的本地分支管理、方便的暫存區、並行工做流等。微信
每個 Git克隆 都是一個完整的文件庫,含有所有歷史記錄和修訂追蹤能力,不依賴於網絡鏈接或中心服務器。其最大特點就是「分支」及「合併」操做很是快速、簡便。網絡
Git 是由「Linux之父」 Linus Torvalds 建立的。由於他發現找不到滿意的方案來管理 Linux Kernel 聯合開發的版本控制,就本身寫了Git。分佈式
Git是分佈式SCM,而SVN是基於服務器的,也就是說每一個開發者本地都有一套git庫,每一個人維護本身的版本(或者合併其餘人的版本),而SVN是每一個人寫完代碼後都及時的checkin到服務器上,進行合併。svn
.git
目錄中本系列內容將用示例圖
的方式來說解git相關命令的執行過程
,並分享一些實戰經驗
,好比分支策略
,以及平常使用中遇到的問題。工具