通常情況下,我們只需簡單設置用戶信息和著色即可。
$ git config --global user.name "Q.yuhen"
$ git config --global user.email qyuhen@abc.com
$ git config --global color.ui true
可以使用 "--list" 查看當前設置。
$ git config --list
2. 初始化
創建項目目錄,然后執行 "git init" 初始化。這會在項目目錄創建 ".git" 目錄,即為元數據信息所在。
$ git init
通常我們還需要創建一個忽略配置文件 ".gitignore",并不是什么都需要加到代碼倉庫中的。
$ cat > .gitignore << end
> *.[oa]
> *.so
> *~
> !a.so
> test
> tmp/
> end
如果作為 Server 存在,那么可以忽略工作目錄,以純代碼倉庫形式存在。
$ git --bare init
在客戶端,我們可以調用 "clone" 命令克隆整個項目。支持 SSH / HTTP/ GIT 等協議。
$ git clone user@server:/path.git
$ git clone git://github.com/schacon/grit.git mygrit
3. 基本操作
Git 分為 "工作目錄"、"暫存區"、"代碼倉庫" 三個部分。
(1) 添加
文件通過 "git add <file>" 被添加到暫存區,如此暫存區將擁有一份文件快照。
$ git add .
$ git add file1 file2
$ git add *.c
"git add" 除了添加新文件到暫存區進行跟蹤外,還可以刷新已被跟蹤文件的快照。需要注意的是,被提交到代碼倉庫的是暫存區的快照,而不是工作目錄中的文件。
(2) 提交
"git commit -m <message>" 命令將暫存區的快照提交到代碼倉庫。
$ git commit -m "message"
在執行 commit 提交時,我們通常會直接使用 "-a" 參數。該參數的含義是:刷新暫存區快照,提交時同時移除被刪除的文件。但該參數并不會添加未被跟蹤的新文件,依然需要執行 "git add <file>" 操作。
$ git commit -am "message"
(3) 狀態
可以使用 "git status" 查看暫存區狀態,通常包括 "當前工作分支(Branch)"、"被修改的已跟蹤文件(Changed but not updated)",以及 "未跟蹤的新文件(Untracked files)" 三部分信息。
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: readme
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# install
no changes added to commit (use "git add" and/or "git commit -a")
(4) 比較
要比較三個區域的文件差別,需要使用 "git diff" 命令。
使用 "git diff [file]" 查看工作目錄和暫存區的差異。
使用 "git diff --staged [file]" 或 "git diff --cached [file]" 查看暫存區和代碼倉庫的差異。
$ git diff readme
diff --git a/readme b/readme
index e69de29..df8285e 100644
--- a/readme
+++ b/readme
@@ -0,0 +1,2 @@
+1111111111111111111
+