Git筆記(2) 入門認知

2021-10-02 16:34:18 字數 2183 閱讀 3451

在 git 中的絕大多數操作都只需要訪問本地檔案和資源

一般不需要來自網路上其它計算機的資訊

在本地磁碟上就有專案的完整歷史

所以大部分操作看起來瞬間完成

這也意味著離線或者沒有 vpn 時,幾乎可以進行任何操作

如在無網路或網路差的地方想做些工作,依然能愉快地提交,直到有網路連線時再上傳

git 中 所有資料在儲存前都計算校驗和,然後以校驗和來引用

這意味著不可能在 git 不知情時更改任何檔案內容或目錄內容

這個功能建構在 git 底層,是構成 git 哲學不可或缺的部分

若在傳送過程中丟失資訊或損壞檔案,git 就能發現

git 用以計算校驗和的機制叫做sha-1 雜湊(hash,雜湊)

這是乙個由 40 個十六進製制字元(0-9 和 a-f)組成的字串

24b9da6552252987aa493b52f8696cd6d3b00373
基於 git 中檔案的內容或目錄結構計算出來

git 中使用這種雜湊值的情況很多,將經常看到這種雜湊值

實際上,git 資料庫中儲存的資訊都是 以檔案內容的雜湊值來索引,而不是檔名

git 和其它版本控制系統的主要差別在:於 git對待資料的方法概念上來區分

其它大部分系統以檔案變更列表的方式儲存資訊

這類系統(cvs、subversion、perforce、bazaar 等等)將它們儲存的資訊看作是一組基本檔案和每個檔案 隨時間逐步累積的差異

可以看出其它版本控制系統是 儲存每個檔案與初始版本的差異

git 更像是把資料看作是對小型檔案系統的一組快照(snapshots

每次 提交更新,或在 git 中 儲存專案 狀態時

它主要對當時的全部檔案製作乙個快照並儲存這個快照的索引

為了高效,如果檔案沒有修改,不再重新儲存該檔案

而是 只保留乙個鏈結指向之前儲存的檔案

git 對待資料更像是乙個快照流stream of snapshots

可以看出 git 是 儲存專案隨時間改變的快照

這是 git 與幾乎所有其它版本控制系統的重要區別

執行的 git 操作,幾乎 只往 git 資料庫中增加資料

很難讓 git 執行任何不可逆操作,或者讓它以任何方式清除資料

同別的 vcs 一樣

未提交更新時有可能丟失或弄亂修改的內容

但是一旦提交快照到 git 中,就難以再丟失資料

特別是如果定期的推送資料庫到其它倉庫的話

更深度** git 如何儲存資料及恢復丟失資料的話題

請參考 git筆記(7) 撤消操作

這裡很關鍵,很關鍵,很關鍵,重要事情說三遍

git 有三種狀態:

由此引入 git 專案的三個工作區域的概念:

基本的 git 工作流程如下:

在 工作目錄 中修改檔案

暫存檔案,即將檔案的快照放入 暫存區域

提交更新,找到暫存區域的檔案,將快照永存到git 倉庫 目錄

如果 git 目錄中儲存著特定版本的檔案,就屬於 已提交 狀態

如果 作了修改並已放入暫存區域,就屬於 已暫存 狀態

如果 自上次取出後,作了修改但還沒有放到暫存區域,就是 已修改 狀態

git 有多種使用方式

這裡將使用命令列模式

首先因為只有在命令列模式下才能執行 git 的 所有命令

而大多數的 gui 軟體只實現了 git 所有功能的乙個子集以降低操作難度

如果學會了在命令列下如何操作

那麼在操作 gui 軟體時應該也不會遇到什麼困難

但是,反之則不成立

參考: git

以上內容,均根據git官網介紹刪減和修改組成

Git入門筆記

持續更新 git的版本控制或許乙個小白還用不到,但是github和碼雲上的oscode,對於小白來說可真的是,真香 絕大多數linux系統都配備了git,但是windows還是需要自己安裝一下。exe和portable版隨你選擇。便攜版用的是exe.zip,並不需要自己解壓,雙擊執行就可以了。不過我...

git入門 2 基礎

必須要了解git的原理,才能知道每個操作的意義是什麼,才能更容易地理解在什麼情況下用什麼操作,而不是死記命令。當然,第一步是要獲得乙個git倉庫。一 獲得git倉庫 有兩種獲得git倉庫的方法,一是在需要用git管理的專案的根目錄執行 git init 執行後可以看到,僅僅在專案目錄多出了乙個.gi...

GIT入門筆記(2) 典型的工作模式

分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖 git clone 在本地機器上拷貝乙個完整的git倉庫。下圖是經典的git開發過程。git的功能特性 從一般開發者的角度來看,git有以下功能 1 從伺服器上轉殖完整的git倉庫 包括 和版本資訊 到單機上。2 在單機上根據...