1. 程式人生 > >Git學習筆記(二)----Git的工作原理以及使用

Git學習筆記(二)----Git的工作原理以及使用

上一篇博文中簡單記錄了一下開始學習Git時查閱到的一些資料,主要介紹了Git的一些概念已經安裝。這篇博文主要的內容如下:

  1. Git工作原理
  2. Git常用命令工作流程
  3. 如何將本地檔案上傳到遠端倉庫
  4. 如何將遠端倉庫的檔案checkout到本地

1、 Git工作原理

本質上,Git是一套內容定址(content-addressable)檔案系統,而和我們直接接觸的Git介面,只不過是封裝在其之上的一個應用層。這個關係頗有點類似於計算機網路中應用層和下屬層的關係。在Git中,那些和應用層相關的命令(也就是我們最常用的命令,如git commit、 git push等),我們稱之為porcelain命令(瓷器之意,意為成品、高階命令);而和底層相關的命令(幾乎不會在日常中使用,如git hash-object、git update-index等),則稱之為plumbing命令(管道之意,是連線git應用介面和git底層實現的一個管道,類似於shell,底層命令)。要了解Git的底層原理,就需要了解Git是如何利用底層命令來實現高層命令的。在此之前,讓我們先來看一下Git的目錄結構,和各個檔案在Git中的作用。
當然,這些內容是直接從參考資料

Git-Book上拷貝下來的,所以沒有什麼意義,建議還是直接去看原文。

2、Git常用命令工作流程

個人覺得,這一部分內容必須清楚,這樣我們在使用Git命令時才會更加清楚我們現在到底是在做什麼,我們的檔案現在所儲存的位置。廢話不多說,直接上圖:
在這裡插入圖片描述
作為剛接觸Git的我們來說,最起碼應該知道上圖中的四個概念,分別是遠端倉庫、本地倉庫、工作區以及暫存區,因為在後面的常用命令中,我們一定要知道,當我們執行了某個命令時,我們的檔案位置會發生什麼變化。

3、如何將本地專案上傳到遠端倉庫

假如,現在我是專案經理,搭好一個專案框架之後,應該先上傳到遠端倉庫,以供其他組員下載到本地,所以,我們必須知道如何將我們本地建立的專案上傳到Git遠端倉庫,注意我這裡使用的遠端倉庫就是Github,但是在Github免費的只能建立公開的庫,所以如果是公司內部專案,應該是不會使用Github作為遠端倉庫,或者說付費建立私有庫,不過據我瞭解,還有一款叫Gitlab的遠端倉庫,不過這不是我們要說的終點,所以我就使用Github來做演示了。
假如我在本地新建了一個test專案,並且專案內只有一個檔案test.txt
在這裡插入圖片描述


接下來我要做的事情就是將這個專案提交到遠端倉庫,在這之前,我們需要先建立一個遠端倉庫,登入Github先,如果還沒有賬號的話,趕緊註冊一個吧,畢竟Github上那麼多牛人的開源專案
在這裡插入圖片描述
建立庫時,如果沒有特殊需求,只要填一個倉庫名稱基本就夠用了
在這裡插入圖片描述建立好倉庫之後我們就可以看到我們這個遠端倉庫的地址了
在這裡插入圖片描述
不過此時,這還只是一個空的倉庫,接下來就是將我們本地的專案提交到該倉庫了,首先,開啟我們之前安裝好的Git命令視窗
在這裡插入圖片描述
切換到我們專案所在路徑,並且執行
git init
此時,我們開啟我們專案資料夾,看看發生的改變,會發現,我們專案的根目錄下,多了一個.git資料夾,不過這個資料夾是一個隱藏目錄,所以你得先顯示系統隱藏目錄。到這裡為止,希望大家能再回過頭看看我們的之前的那張“Git常用命令工作流程”圖,目前為止,我們的檔案都只是儲存在工作區,也就是說工作區就是我們的本地磁碟,不過在執行了git init命令後,我們工作區的檔案就算是交給了git來管理了。
此時,我們執行下一個命令
git status
這個命令主要是用來檢視工作區檔案的狀態,會看到如下內容

在這裡插入圖片描述
請注意看提示內容:
Untracked files:
(use “git add …” to include in what will be committed)
test.txt
這一段的內容,意思就是說,目前我們的test.txt檔案還沒有被跟蹤,也就是說這個檔案僅僅存在於工作區,同時,也給除了提示,可以使用git add命令操作這個檔案,那麼git add有什麼用呢,結合我們之前的工作流程圖可以知道,git add其實就是將我們工作區的檔案提交到暫存區,也就是讓我們這個檔案被跟蹤!
執行以下命令:
git add test.txt
再執行
git status
在這裡插入圖片描述
此時,我們會發現test.txt檔案已經變成 new file,即現在我們的工作區和暫存區都有這個檔案的資訊,接下來就可以將這個檔案提交到本地倉庫了
很簡單,執行git commit即可,再提交檔案時會要求我們輸入一些註釋,以便於以後檢視當初為什麼要操作這個檔案。
那麼,接下來,就是將我們這個專案提交到遠端倉庫了。
不過在這之前我們必須將遠端倉庫與本地倉庫進行關聯
git remote origin https://github.com/XXXXX/XXXXX.git
在這裡插入圖片描述
接下來我們可以到Github上檢視是否已經提交
在這裡插入圖片描述

可以看到在Demo2倉庫的master分支裡已經有我們的test.txt檔案了,至此,我們已經成功的將本地檔案提交到遠端倉庫了,相信大家也對之前定的工作流程圖更加清晰了。

4、將遠端倉庫的專案clone到本地

現在我們切換身份,我們是專案組的一個成員,我們需要將遠端倉庫的專案框架“ckeckout”到本地,為什麼要吧checkout打引號,因為我們之前使用SVN時都是說的checkout,但是在使用git之後,大家都是說的clone!所以還是區分一下比較好。
同樣的我們現在直接在Github上重新建立一個倉庫,並且建立一個專案加入一些檔案
在這裡插入圖片描述

接下來就是將遠端倉庫的專案clone到本地倉庫啦
在這裡插入圖片描述
到本地檢視是否已經clone到本地
在這裡插入圖片描述
好了,到這我們就可以將本地專案上傳到遠端倉庫,也可以從遠端倉庫拷貝程式碼了,剩下的就是實際使用了,這篇博文就到這裡了,對於實際應用時所用到一些命令,找個文件看看就行,孰能生巧,而且我們真正使用應該都是在eclipse中或者idea中使用外掛。
這篇博文僅僅作為筆記使用,所以比較淺顯,可能會存在一些錯誤,如果不慎看到這篇博文,希望你趕緊再看看其他大佬的博文,即使糾正。