1. 程式人生 > >Git--Ⅱ--建立版本庫

Git--Ⅱ--建立版本庫

版本庫相當於一個目錄,在這個目錄下所有的檔案都被都可以被Git管理,包括修改、刪除等操作。版本庫裡的檔案可以在將來的某個時刻還原。

建立一個版本庫非常簡單,首先你需要建立一個目錄,也可以是已存在的目錄。然後通過git init指令進行初始化,從而將該目錄變成版本庫,方便Git進行管理。

$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/test/.git/

倉庫建好後,命令列提示這是一個空的倉庫,然後在這個目錄下多了一個.git的目錄(隱藏目錄),該目錄是Git用來管理版本庫的。其中檔案的詳解參考博文

.git資料夾詳解

現在我們學習如何將檔案新增都版本庫中。我們使用sublime編寫一個readme.txt檔案,內容如下

Git is easy

要將該檔案新增到版本庫中,檔案就必須在test(版本庫)目錄中,否則Git是無法找到該檔案的。

然後我們只需要兩步即可以將該檔案新增到倉庫中。第一步使用個git add將檔案新增到版本庫。

$ git add readme.txt

第二步用 git commit 將檔案提交到倉庫,該命令 -m 後面輸入的是本次提交的說明,可以是任何內容,一般是關於本次提交的一些說明,以便於以後可以從歷史紀錄中方便的找到修改記錄。git commit 執行成功後,命令列提示一個檔案被改動,插入了一行內容(readme檔案有兩行)。

$ git commit -m "add readme file"
[master (root-commit) db07884] add readme file
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

當然,我們可以一次提交多個檔案,比如一次提交兩個檔案

$ git add 1.txt
$ git add 2.txt
$ git commit -m "commit two files"
[master 9217171] commit two files
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1.txt
 create mode 100644 2.txt

接下來我們學習兩個非常有用的命令,可以幫助我們瞭解當前工作區的狀態和檔案修改的情況。

首先我們修改檔案readme.txt,在後面新增新的一行,內容如下

hello world

然後我們可以通過命令 git status 檢視當前工作區狀態

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

命令列提示我們修改了readme.txt檔案,那麼我們如何知道修改的具體內容呢,通過git diff 命令可以檢視
$ git diff
diff --git a/readme.txt b/readme.txt
index 92e6137..792592a 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
-Git is easy
\ No newline at end of file
+Git is easy
+hello world
\ No newline at end of file

知道到底做了哪些修改,我們就可以放心的將檔案提交到倉庫了,提交的過程如上,使用git status檢視狀態

$ git add readme.txt
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   readme.txt

$ git commit -m "add new line"
[master 588fc18] add new line
 1 file changed, 2 insertions(+), 1 deletion(-)
$ git status
On branch master
nothing to commit, working tree clean



readme.txt