git 在儲存和對待各種資訊的時候與其它版本控制系統如 svn 等等有很大差異,儘管操作起來的命令形式非常相近,理解這些差異將有助於防止你使用中的困惑。
如果有使用 svn 等其他版本控制系統的經驗,應該知道它們的工作原理是記錄每一次的變動。將它們儲存的資訊看作是一組基本檔案和每個檔案隨時間逐步累積的差異。
而 git 卻決定劍走偏鋒,以一種看似「異端」的方式來處理版本迭代。git 不按照以上方式對待或儲存資料。 反之,git 更像是把資料看作是對小型檔案系統的一組快照。 每次你提交更新,或在 git 中儲存專案狀態時,它主要對當時的全部檔案製作乙個快照並儲存這個快照的索引。
如上,如果每個版本中有檔案發生變動,git 會將整個檔案複製並儲存起來。這種設計看似會多消耗更多的空間,但在分支管理時卻是帶來了很多的益處和便利。
git 有三種狀態,你的檔案可能處於其中之一
已提交(committed):已提交表示資料已經安全的儲存在本地資料庫中。
已修改(modified):已修改表示修改了檔案,但還沒儲存到資料庫中。
已暫存(staged):已暫存表示對乙個已修改檔案的當前版本做了標記,使之包含在下次提交的快照中。
由此引入 git 專案的三個工作區域的概念:工作區域、暫存區域和 git 倉庫
工作區域(working directory)就是你平時存放專案**的地方。
暫存區域(stage)用於臨時存放你的改動,事實上它只是乙個檔案,儲存即將提交的檔案列表資訊。
git 倉庫(repository)就是安全存放資料的位置,這裡邊有你提交的所有版本的資料。其中,head 指向最新放入倉庫的版本(確切的說,應該是 git 倉庫中 head 指向的版本)。
基本的 git 工作流程如下:
在工作目錄中修改檔案。
暫存檔案,將檔案的快照放入暫存區域。
提交更新,找到暫存區域的檔案,將快照永久性儲存到 git 倉庫目錄。
因此,git 管理的檔案的三種狀態一次依次對應上邊的每乙個流程。記住這三個工作區域,因為後邊教的所有 git 操作基本上都是在這三個工作區域之間搞來搞去!
git學習二 git基礎之git管理本地專案
git基礎打算分兩部分來說,一部分是對於本地專案的管理,第二部分是對於遠端 倉庫的操作。git執行本地專案管理包含對於相關檔案的追蹤,暫存區的比較分析,提交,撤銷等功能。首先mkdir乙個目錄,叫做gittestfile,然後執行以下 建立git的管理配置 git init接著增加例如以下 git ...
git學習 Git 基礎要點
簡單地說,git 究竟是怎樣的乙個系統呢?請注意,接下來的內容非常重要,若是理解了 git 的思想和基本的工作原理,用起來就會知其所以然,游刃有餘。在開始學習 git 的時候,請不要嘗試把各種概念和其他的版本控制系統諸如 subversion 和 perforce 等相比擬,否則容易混淆每個操作的實...
git基礎學習
git基礎學習 git是乙個分布式版本控制軟體,原來是linux核心開發者林納斯 托瓦茲 linus torvalds 為了更好地管理linux核心開發而創立的。自誕生於 2005 年以來,git 日臻成熟完善,在高度易用的同時,仍然保留著初期設定的目標。速度,分布式,強大的分支。提到git,不得不...