本文整理自git官方的教程。[url]
[size=medium]一,git是什麼 [/size]
[size=small] git最初是linus大神寫的用來管理linux開發的工具,可以說是現在程式設計師必不可少的**管理神器。它被廣泛運用於**儲存與分享、版本控制、團隊協作等諸多方面。
使用git 的幾大好處(功能)如下:
1,**一旦提交,就被git記錄在案,可以回到歷史上任何乙個提交的時刻,檢視並編輯**。
3,絕大多數操作都在本地完成,只有需要讀寫遠端倉庫時才需要聯網。[/size]
[size=medium]二,git的基本原理[/size]
[size=small][b]1,使用快照記錄檔案[/b]
在git之前的很多版本控制工具(cvs,subversion,perforce等)關心的是檔案內容的具體差異,即每次記錄有哪些檔案更新,以及具體更新了什麼內容。如下圖
[img]
而git則只關心資料的整體是否變化,它儲存的不是便後變化的差異,而是對檔案的整體做快照,記錄到微型的檔案系統中。每次提交更新時,對於變化了的檔案,git會做乙個快照,並儲存指向這次快照的索引;而對於沒變化的檔案,git會對之前的快照做乙個連線。如下圖。
[img]
讓我們來看一下git在提交的時候具體做了什麼。我們假設當前工作目錄中有三個檔案,我們先將它們暫存,再提交。
[b]暫存操作[/b]:會對每乙個檔案計算校驗和(sha-1雜湊字串),然後將單獨跟前版本的檔案快照儲存到git倉庫中(git使用blob型別的物件儲存這些快照),並將校驗和加入暫存區域。
[b]提交操作[/b]:此時git會先計算每乙個子目錄的校驗和(本例中為根目錄),然後在git倉庫中將這些目錄儲存為樹物件;然後git建立新的提交物件,包含了提交資訊、指向該樹物件的指標,這樣一來,就可以此後需要的時候找到此次快照的內容。
此時,從概念上說,倉庫中的各個物件儲存的資料和相互關係看起來如下圖所示:
[img]
[b]2,git中的檔案狀態[/b]
git眼中的檔案分為4中狀態:未跟蹤的(untracked),已提交的(committed),已修改的(modified),已暫存的(staged)。
[b]未跟蹤的[/b]:所有新建的檔案,沒有使用git add命令新增到git的跟蹤清單中的檔案,都處於未跟蹤狀態。
[b]已提交的[/b]:已經被git儲存了(已經儲存了快照),並且沒有再做過修改的檔案。此時檔案時乾淨安全的。
[b]已修改的[/b]:此前儲存了快照,但是又做了新的修改,但還沒有被git add命令新增到暫存區域。
[b]已暫存的[/b]:處於跟蹤清單中的檔案,做了新的修改後,被git add 命令將當前檔案的快照新增到了已暫存區域,將在下次提交時儲存。
[b]3,git的工作區域[/b]
和上述的檔案的4中狀態相對應的,是git的3個工作區域:工作目錄、暫存區域、以及git目錄(本地倉庫)
[b]git目錄[/b]:每個專案都有乙個git目錄(git clone出來的專案,git目錄就是其中的.git目錄),它是git用來儲存元資料和物件資料庫的地方,實際上每次轉殖映象倉庫的時候,拷貝的就是這個目錄的資料。
[b]工作目錄[/b]:每次我們從倉庫中選中某個版本,並在該版本下工作的時候,實際上就處於工作目錄下。工作目錄實際上是從git目錄中的壓縮物件資料庫中提取出來的。
[b]暫存區域[/b]:當我們在工作目錄下完成了修改,就需要將快照儲存到暫存區域。暫存區域實際上是git目錄中的乙個簡單的檔案。我們最終還需要將暫存區域中的快照轉儲到git目錄中永久儲存起來。
[b]4,git的工作流程[/b]
綜上所述,git的基本工作流程如下:
1,在工作目錄中修改檔案。
2,對修改後的檔案進行快照,儲存到暫存區域。
3,提交更新,將暫存區域中的快照轉存到git目錄中。
[/size]
01 Git安裝教程
git是當今最流行的版本控制軟體,它包含了許多高階工具,這裡小編就講一下git的安裝。首先如下圖 點選next 第二步 檔案位置儲存,可根據自己盤的情況安裝 第八步 配置行結束標記,保持預設 checkout 第九步 在終端模擬器選擇頁面,預設即可,配置後git 第十步 最後配置git額外選擇預設即...
01 git歷史 git學習
說起來搞笑,按照計畫,還沒有學好svn就先蹦到git來了,我也算是奇葩了,不過既然現在就接觸到了,那麼就學習一下,把學習筆記拿過來,分享給大家。說起來,在眾多的版本控制工具中,cvs,git,svn這三個基本上是應用的最廣泛的三個工具了,不說好壞,因為各有特色,不同的專案情況使用不同的管理工具,適合...
Git入門教程
1 首先在上註冊乙個賬號.2 註冊成功以後,新建乙個repository 倉庫 新建介面如下 輸入專案名稱,其他全部預設即可 建立成功後,瀏覽器跳轉到乙個新頁面,如下 紅色標註的位址要記住 接下來要用到。這裡提示你如何通過命令列提交專案到你剛才新建的repository。剛才新建repository...