Git 的工作就是建立和儲存你項目的快照及與之後的快照進行對比。本章将對有關建立與送出你的項目快照的指令作介紹。
用 git init 在目錄中建立新的 Git 倉庫。 你可以在任何時候、任何目錄中這麼做,完全是本地化的。
在目錄中執行 git init,就可以建立一個 Git 倉庫了。比如我們建立 runoob 項目:
現在你可以看到在你的項目中生成了 .git 這個子目錄。 這就是你的 Git 倉庫了,所有有關你的此項目的快照資料都存放在這裡。
使用 git clone 拷貝一個 Git 倉庫到本地,讓自己能夠檢視該項目,或者進行修改。
如果你需要與他人合作一個項目,或者想要複制一個項目,看看代碼,你就可以克隆那個項目。 執行指令:
[url] 為你想要複制的項目,就可以了。
例如我們克隆 Github 上的項目:
克隆完成後,在目前目錄下會生成一個 simplegit 目錄:
$ cd simplegit/
$ ls README Rakefile lib
上述操作将複制該項目的全部記錄。
預設情況下,Git 會按照你提供的 URL 所訓示的項目的名稱建立你的本地項目目錄。 通常就是該 URL 最後一個 / 之後的項目名稱。如果你想要一個不一樣的名字, 你可以在該指令後加上你想要的名稱。
Git 的工作就是建立和儲存你的項目的快照及與之後的快照進行對比。本章将對有關建立與送出你的項目的快照的指令作介紹。
git add 指令可将該檔案添加到緩存,如我們添加以下兩個檔案:
git status 指令用于檢視項目的目前狀态。
接下來我們執行 git add 指令來添加檔案:
現在我們再執行 git status,就可以看到這兩個檔案已經加上去了。
新項目中,添加所有檔案很普遍,我們可以使用 git add . 指令來添加目前項目的所有檔案。
現在我們修改 README 檔案:
在 README 添加以下内容:# Runoob Git 測試,然後儲存退出。
再執行一下 git status:
"AM" 狀态的意思是,這個檔案在我們将它添加到緩存之後又有改動。改動後我們在執行 git add 指令将其添加到緩存中:
當你要将你的修改包含在即将送出的快照裡的時候,需要執行 git add。
git status 以檢視在你上次送出之後是否有修改。
我示範該指令的時候加了 -s 參數,以獲得簡短的結果輸出。如果沒加該參數會詳細輸出内容:
執行 git diff 來檢視執行 git status 的結果的詳細資訊。
git diff 指令顯示已寫入緩存與已修改但尚未寫入緩存的改動的差別。git diff 有兩個主要的應用場景。
尚未緩存的改動:git diff
檢視已緩存的改動: git diff --cached
檢視已緩存的與未緩存的所有改動:git diff HEAD
顯示摘要而非整個 diff:git diff --stat
在 hello.php 檔案中輸入以下内容:
git status 顯示你上次送出更新後的更改或者寫入緩存的改動, 而 git diff 一行一行地顯示這些改動具體是啥。
接下來我們來檢視下 git diff --cached 的執行效果:
使用 git add 指令将想要快照的内容寫入緩存區, 而執行 git commit 将緩存區内容添加到倉庫中。
Git 為你的每一個送出都記錄你的名字與電子郵箱位址,是以第一步需要配置使用者名和郵箱位址。
接下來我們寫入緩存,并送出對 hello.php 的所有改動。在首個例子中,我們使用 -m 選項以在指令行中提供送出注釋。
現在我們已經記錄了快照。如果我們再執行 git status:
以上輸出說明我們在最近一次送出之後,沒有做任何改動,是一個"working directory clean:幹淨的工作目錄"。
如果你沒有設定 -m 選項,Git 會嘗試為你打開一個編輯器以填寫送出資訊。 如果 Git 在你對它的配置中找不到相關資訊,預設會打開 vim。螢幕會像這樣:
如果你覺得 git add 送出緩存的流程太過繁瑣,Git 也允許你用 -a 選項跳過這一步。指令格式如下:
我們先修改 hello.php 檔案為以下内容:
再執行以下指令:
git reset HEAD 指令用于取消已緩存的内容。
我們先改動檔案 README 檔案,内容如下:
hello.php 檔案修改為:
現在兩個檔案修改後,都送出到了緩存區,我們現在要取消其中一個的緩存,操作如下:
現在你執行 git commit,隻會将 README 檔案的改動送出,而 hello.php 是沒有的。
可以看到 hello.php 檔案的修改并為送出。
這時我們可以使用以下指令将 hello.php 的修改送出:
簡而言之,執行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一送出快照中的緩存。
如果隻是簡單地從工作目錄中手工删除檔案,運作 git status 時就會在 Changes not staged for commit 的提示。
要從 Git 中移除某個檔案,就必須要從已跟蹤檔案清單中移除,然後送出。可以用以下指令完成此項工作
如果删除之前修改過并且已經放到暫存區域的話,則必須要用強制删除選項 -f
如果把檔案從暫存區域移除,但仍然希望保留在目前工作目錄中,換句話說,僅是從跟蹤清單中删除,使用 --cached 選項即可
如我們删除 hello.php檔案:
不從工作區中删除檔案:
可以遞歸删除,即如果後面跟的是一個目錄做為參數,則會遞歸删除整個目錄中的所有子目錄和檔案:
進入某個目錄中,執行此語句,會删除該目錄下的所有檔案和子目錄。
git mv 指令用于移動或重命名一個檔案、目錄、軟連接配接。
我們先把剛移除的 README 添加回來:
然後對其重名:
README.md
本文轉自 頂風走千裡 51CTO部落格,原文連結:
http://blog.51cto.com/13505030/2055436