文章目錄
Git基本操作
Git 的工作就是創建和保存你項目的快照及與之後的快照進行對比。本章將對有關創建與提交你的項目快照的命令作介紹。
獲取與創建項目命令
git init
用 git init 在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這麼做,完全是本地化的。
在目錄中執行 git init,就可以創建一個 Git 倉庫了。比如我們創建 runoob 項目:
$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
# 在 /www/runoob/.git/ 目錄初始化空 Git 倉庫完畢。
現在你可以看到在你的項目中生成了 .git 這個子目錄。 這就是你的 Git 倉庫了,所有有關你的此項目的快照數據都存放在這裏。
ls -a
. .. .git
git clone
使用 git clone 拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目,或者進行修改。
如果你需要與他人合作一個項目,或者想要複製一個項目,看看代碼,你就可以克隆那個項目。 執行命令:
git clone [url]
[url] 爲你想要複製的項目,就可以了。
例如我們克隆 Github 上的項目:
$ git clone git@github.com:schacon/simplegit.git
Cloning into 'simplegit'...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (2/2), done.
Checking connectivity... done.
克隆完成後,在當前目錄下會生成一個 simplegit 目錄:
$ cd simplegit/
$ ls
README Rakefile lib
默認情況下,Git 會按照你提供的 URL 所指示的項目的名稱創建你的本地項目目錄。 通常就是該 URL 最後一個 / 之後的項目名稱。如果你想要一個不一樣的名字, 你可以在該命令後加上你想要的名稱。
基本快照
Git 的工作就是創建和保存你的項目的快照及與之後的快照進行對比。本節將對有關創建與提交你的項目的快照的命令作介紹。
git add
git add 命令可將該文件添加到緩存,如我們添加以下兩個文件:
$ touch README
$ touch hello.c
$ ls
README hello.c
$ git status -s
?? README
?? hello.c
$
git status 命令用於查看項目的當前狀態。接下來我們使用git add命令來添加文件:
$ git add README hello.c
現在我們再執行 git status,就可以看到這兩個文件已經加上去了。
$ git status -s
A README
A hello.php
$
git status
git status 以查看在你上次提交之後是否有修改。
演示該命令的時候加了 -s 參數,以獲得簡短的結果輸出。如果沒加該參數會詳細輸出內容.
git diff
執行 git diff 來查看執行 git status 的結果的詳細信息。
git diff 命令顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別。git diff 有兩個主要的應用場景。
- 尚未緩存的改動:git diff
- 查看已緩存的改動: git diff --cached
- 查看已緩存的與未緩存的所有改動:git diff HEAD
- 顯示摘要而非整個 diff:git diff --stat
git commit
使用 git add 命令將想要快照的內容寫入緩存區, 而執行 git commit 將緩存區內容添加到倉庫中。
Git 爲你的每一個提交都記錄你的名字與電子郵箱地址,所以第一步需要配置用戶名和郵箱地址。接下來我們寫入緩存,並提交對 hello.c 的所有改動。在首個例子中,我們使用 -m 選項以在命令行中提供提交註釋。
git reset HEAD
git reset HEAD 命令用於取消已緩存的內容。
git rm
如果只是簡單地從工作目錄中手工刪除文件,運行 git status 時就會在 Changes not staged for commit 的提示。
要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除,然後提交。可以用以下命令完成此項工作
git rm <file>
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f
git rm -f <file>
如果把文件從暫存區域移除,但仍然希望保留在當前工作目錄中,換句話說,僅是從跟蹤清單中刪除,使用 --cached 選項即可
git rm --cached <file>
git mv
git mv 命令用於移動或重命名一個文件、目錄、軟連接。
我們先把剛移除的 README 添加回來:
$ git add README
$ git mv README README.md
$ ls
README.md