一、git常用指令
工作區,暫存區和版本庫之間的關系
工作區:我們會想當然的認為,目前倉庫所在目錄就是我們的工作區,其實這是不完全正确的。在目前倉庫中,新增,更改,删除檔案這些動作,都發生在工作區裡面。
暫存區:英文叫stage, 或index。在版本庫.git)目錄下,有一個index檔案。它實際上就是一個包含檔案索引的目錄樹,像是一個虛拟的工作區。在這個虛拟工作區的目錄樹中,記錄了檔案名、檔案的狀态資訊(時間戳、檔案長度等),檔案的内容并不存儲其中,而是儲存在Git對象庫(.git/objects)中,檔案索引建立了檔案和對象庫中對象實體之間的對應。如果目前倉庫,有檔案更新,并且使用git
add 指令,那麼這些更新就會出現在暫存區中。
版本庫:目前倉庫下,如果沒有任何的送出,那麼版本庫就是對應上次送出後的内容。下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關系。
mkdir path_dir: 建立一個空目錄 path_dir指目錄名
pwd: 顯示目前目錄的路徑。
ls或ll 顯示目前路徑檔案
git add XX 把xx檔案添加到暫存區去。
git commit –m “XX” 送出檔案 –m 後面的是注釋。
git status 檢視倉庫狀态
git diff XX 檢視XX檔案修改了那些内容
git diff 和 git diff --cached容易混淆
git diff 比較的是工作區和暫存區的差别
git diff --cached 比較的是暫存區和版本庫的差别
git diff HEAD 可以檢視工作區和版本庫的差别
每次commit後,git diff --cached沒有内容,是因為暫存區的内容已經更新到版本庫中,是以暫存區和版本庫中的内容無差别
git log 檢視曆史記錄
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一個版本
(第一種是:git reset –hard HEAD^ 那麼如果要回退到上上個版本隻需把HEAD^ 改成 HEAD^^ 以此類推。那如果要回退到前100個版本的話,使用上面的方法肯定不友善,我們可以使用下面的簡便指令操作:git reset –hard HEAD~100 即可 )
cat XX 檢視XX檔案内容
git reflog 檢視曆史記錄的版本号id(git reset –hard 版本号)
git checkout — XX 把XX檔案在工作區的修改全部撤銷。
當執行git checkout .或git checkout -- 指令是,會用暫存區全部的檔案或指定的檔案替換工作區的檔案。這個操作很危險,會清楚工作區中未添加到暫存區的改動。
當執行git checkout HEAD .或git checkout HEAD 指令時,會用HEAD指向的master分支中的全部或部分檔案替換暫存區和工作區中的檔案。這個指令也是極度危險的。因為不但會清楚工作區中未送出的改動,也會清楚暫存區中未送出的改動。
git rm XX 删除XX檔案
當執行git rm --cached 指令時,會直接從暫存區删除檔案,工作區則不做出改變。
git push 推送到遠端庫
git pull 拉取遠端庫最新資料
git clone https://github.com/tugenhua0707/testgit 從遠端庫中克隆
二、git詳細教程以及Markdown文法(從網上收集,有時間可以看看)
手把手教你使用Git http://blog.jobbole.com/78960/
Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Git 版本管理工具(一)http://blog.csdn.net/sunboy_2050/article/details/7527877
Git 版本管理工具(二)http://blog.csdn.net/sunboy_2050/article/details/7529022
Git 版本管理工具(三)http://blog.csdn.net/sunboy_2050/article/details/7529841
Markdown——入門指南 http://www.jianshu.com/p/1e402922ee32/
markdown 簡明文法 http://ibruce.info/2013/11/26/markdown/
本文轉自aaron428 51CTO部落格,原文連結:http://blog.51cto.com/aaronsa/1740520,如需轉載請自行聯系原作者