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
可以檢視到兩次提交了。