分布式管理與集中式管理:
比較一:
比較二:
git的工作區域與檔案不同的狀態
每提交一次,都會包含乙個指向前乙個提交物件的指標,預設為master,並且自動向前移動。
master
指向新的版本:
新建乙個分支(git branch name)時,例如testing分支(git branch
testing),就會有乙個新的指標指向當前commit物件:
那麼,git
是如何知道你當前在哪個分支上工作的呢?其實它儲存著乙個名為
head
的特別指標。它是乙個指向你正在工作中的本地分支的指標(正指向master,所以master為當前所在分支):
切換到testing分支(git checkout testing),head指向testing分支,於是就可以在testing分支上開發了:
在testing分支上開發並commit之後:
切回master分支(git checkout master):
在master分支上commit之後,會形成分叉,此時若需要合併,就需要進行衝突處理了。
我們用(
遠端倉庫名
)/(分支名
)這樣的形式表示遠端分支。比如
origin/master
分支。例如:
假設你們團隊有個位址為
git.ourcompany.com
的git
伺服器。如果你從這裡轉殖,
git會自動為你將此遠端倉庫命名為
origin
master
分支的指標,在本地命名為
origin/master
,但你無法在本地更改其資料。接著,
git建立乙個屬於你自己的本地
master
分支,始於
origin
上master
分支相同的位置,你可以就此開始工作了。
此時向遠端提交**就會有衝突導致提交失敗,就需要拉取(git pull或者git fetch)**合併後進行處理,解決衝突,再進行提交到遠端倉庫(git push)。
參考自《pro git》
Git 基礎知識及部分原理
工作區 就是你在電腦上看到的目錄,比如目錄下testgit裡的檔案 git隱藏目錄版本庫除外 版本庫 工作區有乙個隱藏目錄.git,這個不屬於工作區,這是版本庫。git add 和 git commit 是把檔案先新增到暫存區,再提交到版本庫分支上 分支的增刪改查 git branch 建立分支 g...
git原理簡介
git 究竟是怎樣的乙個系統呢?請注意,接下來的內容非常重要,若是理解了 git 的思想和基本工作原理,用起來就會知其所以然,游刃有餘。在開始學習 git 的時候,請不要嘗試把各種概念和其他版本控制系統 諸如 subversion 和 perforce 等 相比擬,否則容易混淆每個操作的實際意義。g...
git 儲存原理
git與傳統的版本控制工具的區別在於 分布式。每乙個開發者都可以有自己的版本庫,可以對自己的版本庫提交,修改。對本地庫的修改可以在斷網的情況下進行。同時,專案組還有乙個中心庫,就git是分布式的,專案組也必須保證有乙份最最 權威 的 在中心庫,這份 就是穩定版本,是最終可以上線的版本。雖然git是分...