定義
分布式版本管理與控制系統與傳統的集中式(中心化)管理相比,分布式版本控制系統的安全性要高很多,因為每個人電腦裡都有完整的版本庫,即使沒有網路你也可以提交變動到版本庫(因為本地就有乙個完整的版本庫),git的中心庫和svn等傳統版本控制系統不同,它不是一切的中心(大腦),而僅僅也是乙個副本,它的存在只是為了方便協作開發,大家方便提交變動和同步變動。但是這裡說的不依賴網路,並不是完全不依賴網路就能完成所以的事情,比如讓其他開發人員拿到你的改動,所以說這裡所說的不依賴網路只是相對的,在沒有網路的情況下,可以提交變動到本地的版本庫,但最終還是要依賴網路提交變動讓其他開發人員看到。一旦長時間不進行**同步(不同開發者之間),很可能會產生變動衝突,這時候就需要人工來解決衝突。
相較於傳統的svn、cvs、cc,git管理的不是檔案而是變動(change)
概念
2.1 工作區
我們在本機建立的目錄,我們會在這個目錄下面建立檔案。
git checkout – file:丟棄工作區的修改
要注意這時chekcout 是把工作區的檔案 file 還原到上一次提交到暫存區的變動(也可理解成用上一次提交到暫存區的變動覆蓋工作區的檔案)而不管這個變動是否已經提交到版本庫。如果是乙個新建的檔案,還沒有提交到暫存區(也就是說肯定沒有提交到版本庫了),checkout命令並不能回退當前內容到上乙個版本(因為沒有提交到暫存區,工作區的改動談不上版本,任何改動也得 不到追蹤)。
2.2 暫存區(stage)
工作區的任何改動需要新增到暫存區才能提交到版本庫(我的理解是只有新增到暫存區的變動,才能被git管理)。
git add file :把file的變動新增到暫存區
git reset head file:把file在暫存區的內容回退到提交到版本庫的最新版本(也可以理解成用版本庫中file的最新版本覆蓋暫存區的內容)。
2.3 版本庫
所有檔案所有版本的集合。
git commit -m 「log message」 :提交暫存區的變動到版本庫
git reset –hard head^:把版本庫的file回退到最新版本的上乙個版本,head^^表示上上個版本,head~77表示往上77個版本(如果寫77個^你會崩潰!!!)。
git reset –hard 34343:把版本庫的file回退到 commit id = 34343 的版本
2.4 分支
每個(有可能是其中一部分)檔案的某個版本串起來的一條檔案集合,通過git commit 命令把變動提交到分支。
2.5 其他常用命令
git status:檢視當前狀態
git log:檢視提交日誌
git reflog:檢視歷史命令日誌
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 核心開發而開發的乙個開放原始碼...