關於Git的簡單使用

2023-01-14 07:26:10 字數 3166 閱讀 8459

詳情請檢視

現在請注意,接下來要講的概念非常重要。對於任何一個檔案,在 git 內都只有三種狀態:已提交(committed),已修改(modified)和已暫存(staged)。已提交表示該檔案已經被安全地儲存在本地資料庫中了;已修改表示修改了某個檔案,但還沒有提交儲存;已暫存表示把已修改的檔案放在下次提交時要儲存的清單中。

由此我們看到 git 管理專案時,檔案流轉的三個工作區域:git 的工作目錄,暫存區域,以及本地倉庫。

圖 1-6. 工作目錄,暫存區域,以及本地倉庫

每個專案都有一個 git 目錄(譯註:如果git clone出來的話,就是其中.git的目錄;如果git clone --bare的話,新建的目錄本身就是 git 目錄。),它是 git 用來儲存後設資料和物件資料庫的地方。該目錄非常重要,每次克隆映象倉庫的時候,實際拷貝的就是這個目錄裡面的資料。

從專案中取出某個版本的所有檔案和目錄,用以開始後續工作的叫做工作目錄。這些檔案實際上都是從 git 目錄中的壓縮物件資料庫中提取出來的,接下來就可以在工作目錄中對這些檔案進行編輯。

所謂的暫存區域只不過是個簡單的檔案,一般都放在 git 目錄中。有時候人們會把這個檔案叫做索引檔案,不過標準說法還是叫暫存區域。

基本的 git 工作流程如下:

在工作目錄中修改某些檔案。

對修改後的檔案進行快照,然後儲存到暫存區域。

提交更新,將儲存在暫存區域的檔案快照永久轉儲到 git 目錄中。

所以,我們可以從檔案所處的位置來判斷狀態:如果是 git 目錄中儲存著的特定版本檔案,就屬於已提交狀態;如果作了修改並已放入暫存區域,就屬於已暫存狀態;如果自上次取出後,作了修改但還沒有放到暫存區域,就是已修改狀態。到第二章的時候,我們會進一步瞭解其中細節,並學會如何根據檔案狀態實施後續操作,以及怎樣跳過暫存直接提交。

我們新建一個專案demo1,裡面新建一個demo01.txt文件,隨便寫點東西。

要對現有的某個專案開始用 git 管理,只需到此專案所在的目錄,執行:

$ git init
初始化後,在當前目錄下會出現一個名為 .git 的目錄,所有 git 需要的資料和資源都存放在這個目錄中。不過目前,僅僅是按照既有的結構框架初始化好了裡邊所有的檔案和目錄,但我們還沒有開始跟蹤管理專案中的任何一個檔案。

請記住,工作目錄下面的所有檔案都不外乎這兩種狀態:已跟蹤或未跟蹤。已跟蹤的檔案是指本來就被納入版本控制管理的檔案,在上次快照中有它們的記錄,工作一段時間後,它們的狀態可能是未更新,已修改或者已放入暫存區。而所有其他檔案都屬於未跟蹤檔案。它們既沒有上次更新時的快照,也不在當前的暫存區域。初次克隆某個倉庫時,工作目錄中的所有檔案都屬於已跟蹤檔案,且狀態為未修改。

在編輯過某些檔案之後,git 將這些檔案標為已修改。我們逐步把這些修改過的檔案放到暫存區域,直到最後一次性提交所有這些暫存起來的檔案,如此重複。

檢查當前檔案的狀態

要確定哪些檔案當前處於什麼狀態,可以用git status命令

首先我們在demo1.txt中隨便寫點東西。

然後我們隨便新增些資料進去

我們使用git status命令來檢視檔案的狀態

當我們執行$ git add .命令後可以看到檔案處於暫存狀態。

只要在 “changes to be committed” 這行下面的,就說明是已暫存狀態。如果此時提交,那麼該檔案此時此刻的版本將被留存在歷史記錄中。你可能會想起之前我們使用git init後就執行了git add命令,開始跟蹤當前目錄下的檔案。在git add後面可以指明要跟蹤的檔案或目錄路徑。如果是目錄的話,就說明要遞迴跟蹤該目錄下的所有檔案。(譯註:其實git add的潛臺詞就是把目標檔案快照放入暫存區域,也就是 add file into staged area,同時未曾跟蹤過的檔案標記為需要跟蹤。這樣就好理解後續 add 操作的實際意義了。)

當我們在專案上新建一個demo2.txt檔案

$ git status

在狀態報告中可以看到新建的demo2.txt檔案出現在“untracked files”下面。未跟蹤的檔案意味著git在之前的快照(提交)中沒有這些檔案;git 不會自動將之納入跟蹤範圍,除非你明明白白地告訴它“我需要跟蹤該檔案”,因而不用擔心把臨時檔案什麼的也歸入版本管理。

跟蹤新檔案

此時再執行git status命令,會看到 demo2.txt檔案已被跟蹤,並處於暫存狀態:

現在我們修改下demo2.txt檔案的內容,再次執行$ git status命令

我們發現狀態碼提示“changes not staged for commit”,說明已跟蹤檔案的內容發生了變化,但還沒有放到暫存區。接下里我們執行$ git add demo2.txt命令

我們發現狀態提示“changes to be committed“,說明檔案已經放到了暫存區,但還沒有存入本地倉庫。

git相關的簡單使用

1.克隆 git clone 從gitlab專案網頁上覆制的專案資源地址 2.更新最新 git pull 3.新建本地分支和檢視所有分支 git checkout b git branch a 4.刪除分支 切換到maser後git branch d 5.提交 時先切換到自己新創的分支 git ch...

關於kissxml的簡單使用

好久沒有用過xml了,最近有專案需要用到xml,我就用了kissxml這個三方庫,感覺還不錯,比較簡單,記錄一下使用的方法免得忘了吧 下面是我隨便擷取的一段xml name 中國車組 id 2 type cargroup bmp0 s2 1.png bmp1 s2 2.png id 930 cnic...

關於mpu6050的簡單使用

mpu6050晶片的座標系是這樣定義的 令晶片表面朝向自己,將其表面文字轉至正確角度,此時,以晶片內部中心為原點,水平向右的為x軸,豎直向上的為y軸,指向自己的為z軸。見下圖 角速度計 繞x y和z三個座標軸旋轉的角速度分量gyr x gyr y和gyr z均為16位有符號整數。從原點向旋轉軸方向看...