clone或者init工程後,工程目錄下都有一個.git的版本庫.他是隱藏的,ls -ah才能查看
stage是暫存區
0.git add 添加修改的文件
git add file 添加文件file到暫存區
git add . 添加全部改動的文件到暫存區
1.git commit 提交文件到本地分支
git commit -m '提交說明'
2.git status 查看工作區的文件狀態是否被改動
3.git diff 查看具體的改動內容
git diff HEAD — readme.txt
查看工作區文件和版本庫最新版本的區別
4.git log 查看從近到遠的提交日誌
git log —pretty=oneline 美化顯示日誌
eg:
$ git log --pretty=oneline
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
你看到的一大串類似3628164...882e1e0的是commit id(版本號),和SVN不一樣,Git的commit id不是1,2,3……遞增的數字,而是一個SHA1計算出來的一個非常大的數字,用十六進制表示,而且你看到的commit id和我的肯定不一樣,以你自己的爲準。
5.git reset 回退
git reset --hard HEAD^ 回退到上一個版本
git reset —hard commit id 回退到某一個版本 commit id只要寫前幾個字符,git會自動查找
eg: git reset —hard ea34578
Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
6.git reflog 記錄你的每一次命令
Git提供的後悔藥,時光穿梭機
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
有了這個我們就能拿到歷史的commit id,來回穿梭
7.git checkout --filename 丟棄工作區的修改
這裏省略 --同樣可以達到丟棄工作區修改的目的但是會帶來問題
-- double dash,是bash的內置命令,用來隔離”樹”和”命令”,加了--就認爲後面的是文件路徑而不是命令選項
git checkout還有一個作用就是切換分支,假設有個該死的文件叫master,你做修改後又想丟棄,你使用了git checkout master(這裏省略了--),這個時候你就悲催了,git執行的是切換分支而不是丟棄修改
所以丟棄文件建議不要省略--這是個好習慣
8.git rm 刪除文件
git rm filename 然後commit到分支,直接在文件管理器刪除不提交是無效的哦!除非add添加進暫存區
如果是誤刪直接checkout就行了
9.推拉代碼push pull
git push 將本地分支代碼推送到遠端分支
git pull 將遠端分支代碼拉倒本地