1. 程式人生 > >GitHub使用入門(二):Git基本用法

GitHub使用入門(二):Git基本用法

GitHub中的主要命令和用法都是在Git中完成的,所以我們有必要了解Git的基本語法和規則。下面來介紹一下:

基本操作

  • git init:初始化倉庫 必須先要進行初始化倉庫才能進行版本控制,下面我們就來實際進行初始化倉庫。

$ mkdir git-tutorial


$ cd git-tutorial


$ git init
Initialized empty Git repository in C:/Users/keked/Desktop/git-tutorial/.git/

如果初始化成功,執行了git init命令的目錄就會生成.git目錄。這個.git目錄裡儲存著管理當前目錄內容所需的倉庫資料。

  • git status:檢視倉庫狀態

工作數和倉庫在被操作過程中,狀態常常會發生變化,所以我們可能會經常需要這個命令來查一下。


$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

結果顯示我們處於master分支下,我們建立這個倉庫還沒有任何可以提交的內容,這裡我們建立README.md檔案作為管理物件,作為提交前期準備。


$ touch README.md


$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        README.md

nothing added to commit but untracked files present (use "git add" to track)

看到在Untracked files中顯示了README.md檔案。類似的,只要對Git工作樹或倉庫進行操作,git status命令的顯示結果就會發生變化。

  • git add:向暫存區中新增檔案 如果只是對Git倉庫中的工作樹建立了檔案,那麼該檔案不會被計入Git倉庫的版本管理物件中。要想讓檔案成為Git倉庫的管理物件,我們需要使用git add命令將期加入快取區(Stage或Index),快取區是提交之前的一個臨時區域。

$ git add README.md


$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   README.md
  • git commit:儲存倉庫的歷史記錄 git commit命令可以將當前暫存區中的檔案實際儲存到倉庫的歷史記錄中。通過這些命令,我們就可以在工作樹種複製原檔案。
$ git commit -m "First commit"

$ git commit -m "First commit"
[master (root-commit) a9cf631] First commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

-m引數後的"First commit"是對提交資訊的概述。

剛才我們只是簡單記錄了一行提交資訊,如果想要記錄的更加詳細,應該不加-m,直接執行git commit命令。

在編輯器中記錄提交資訊格式如下: 第一行: 用一行文字簡述提交更改內容 第二行: 空格 第三行以後:記述更改的原因和詳細內容 只要按照上面格式輸入,今後就可以通過確認日誌的命令或工具看到這些記錄。

如果在編輯器啟動後想終止提交,將提交的資訊留空並直接關閉編輯器就可以了終止了。 最後提交完成之後還可以通過git status檢視當前狀態。

  • git log:檢視提交日誌
$ git log
commit a9cf63136951c67ec98fdc53f753edf3923f7967 (HEAD -> master)
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 20:19:54 2018 +0800

    First commit

commit旁邊顯示的是,指向這個提交的雜湊值。

如果只想讓程式顯示第一行的簡述資訊,可以在git log命令後加上 --pretty = short。

另外,只要在git log命令後加上目錄名,便會顯示該目錄下的日誌。如果加的是檔名,就會顯示與該檔案相關的日誌。

$ git log README.md

如果想檢視提交所帶來的改動,可以新增引數 -p,檔案前後差異就會顯示出來。當然,如果只想看某個檔案的前後差異,我們可以寫成

$ git log -p README.md
  • git diff:檢視更改前後的差別

git diff可以檢視工作樹、暫存區、最新提交之間的差別。

我們在剛提交的README.md檔案寫入一些東西

今天也要好好加油鴨

執行git diff命令,檢視當前工作樹和暫存區的差別:

$ git diff
diff --git a/README.md b/README.md
index e69de29..547423e 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+今天也要好好加油鴨
\ No newline at end of file

因為我們還沒有使用git add命令向暫存區新增任何東西,所以程式只會顯示工作樹和最新提交狀態之間的差異。這裡的+表示新新增的行,被刪除的行會用-號來表示。我們可以看到,只添加了一行。

下面使用git add命令將README.md檔案加入暫存區。

$ git add README.md

如果現在執行git diff命令,由於工作樹和暫存區沒有任何差別,結果是什麼也不會顯示。要檢視與最新提交的差別,需要執行以下命令:

$ git diff HEAD
diff --git a/README.md b/README.md
index e69de29..547423e 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+今天也要好好加油鴨
\ No newline at end of file

這裡的HEAD是指向當前分支中最新一次提交的指標。在執行git commit命令之前,不妨養成好習慣。先執行git diff HEAD命令,檢視本次提交和上次提交有什麼差別,等確認完畢之後再進行提交。下面,我們執行git commit來提交。

$ git commit -m "Add sequences"
[master 5f18642] Add sequences
 1 file changed, 1 insertion(+)

$ git log
commit 5f1864270c954ed705f8e5abc7f62f9b4103eb8e (HEAD -> master)
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 21:06:13 2018 +0800

    Add sequences

commit a9cf63136951c67ec98fdc53f753edf3923f7967
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 20:19:54 2018 +0800

    First commit

可以檢視到兩次提交了。