git使用(下) ——常用命令總結
接下來是git常用命令的總結:
編寫一個檔案之後要把檔案放單Git倉庫需要兩步, 舉例編寫了一個檔案readme.txt
第一步,git add命令告訴Git,把檔案新增到版本庫的快取區中
$ git add readme.txt
第二步,git commit命令告訴Git,把檔案從快取區中提交到分支
$ git commit -m "wrote a readme file" [master (root-commit) eaadf4e] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
git status 時刻檢視工作區、倉庫 當前的狀態
git diff <filename> 檢視filename檔案被修改了什麼
git diff HEAD -- <namefile>
git log 檢視提交歷史,顯示從最近到最遠的提交日誌 git log --pretty=oneline 命令作用同上,只是顯示更簡潔 git log --graph 檢視分支的合併情況 git log --graph --pretty=oneline --abbrev-commit 簡潔檢視分支的合併情況
git reset --hard HEAD^ 回退到上一個版本 git reset --hard HEAD^^ 回退到上上一個版本 git reset --hard HEAD~100 回退到上100個版本 git reset --hard 04ef 回退到commit id 為 04ef....的某個版本,也可以是未來的某個版本
git reflog 用來記錄你的每一次命令,以便確定要回到未來的哪個版本
git checkout -- <namefile> 把檔案namefile在工作區的修改全部撤銷,前提是工作區的修改還沒有新增到暫緩區 git reset HEAD <namefile> 可以把暫存區的修改撤銷掉(unstage) 然後用上邊的命令撤銷修改
刪除檔案 rm <namefile> 在工作區刪除了檔案後,下一個命令 git rm <namefile> 從版本庫中刪除namefile檔案 刪除之後 git commit提交 記得加 -m git checkout -- <namefile> 如果誤刪,版本庫裡還有,可以把誤刪檔案恢復到最新版本,原理版本庫裡的版本替換工作區的版本,無論是修改還是刪除 都可以“一鍵還原”
如何關聯遠端庫: git remote add origin [email protected]:YanMario/mac.git 將本地倉庫與github上的一個倉庫進行關聯。紅色的字分別對應你Github的帳號和倉庫名稱,新增後遠端庫的名稱就是origin,是Git的預設叫法,也可以改成其他名稱
git push -u origin master 第一次推送master分支時 加上 -u引數,這樣Git不僅會把本的master分支內容推送到遠端新的master分支,還會把本地的master分支與遠端的master分支關聯起來,以後推送和拉取可以簡化命令 省去-u引數
git push origin master 把本地master分支的最新修改推送到Github
如何克隆遠端倉庫: git clone [email protected]:YanMario/mac.git
建立與合併分支: git branch dev 是建立一個新的分支名字為dev
git checkout dev 是切換分支到dev,相當於HEAD指標指向了dev
git checkout -b dev 將上邊的兩條命令合併為一條命令
git branch 列出所有分支,當前分支前邊會有一個 *
建立一個分支後對檔案進行了改動後,要將檔案新增快取區(git add) 然後將檔案提交到版本庫(git commit -m "xxx") 現在dev工作完成,我們就可以切換回master分支: git checkout master 切換分支到master中
當切換到master分支中,剛才檔案改動後的內容不見了,因為那個提交是在dev分支上,而master分支此刻的提交點並沒有變
現在,我們把dev分支的工作成果合併到master分支上: git merge dev
合併時表示禁用Fast forward: git merge --no-ff -m "merge with no-ff" dev 會多有一次commit 所以加上 -m. 加上 --no-ff 引數後可以使用普通的合併,合併後的歷史有分支,能看出來曾經做過合併,而 fast forward合併看不出來曾經做過合併
合併完成後,可以放心的刪除dev分支: git branch -d dev
如果分支刪除被阻撓,可以使用以下命令可以強行刪除: git branch -D dev
當修復bug時,想建立另一個分支來修復它,但正在dev上進行的工作沒有完成,可以先儲存現場: git stash 把當前工作現場“儲藏”起來,等恢復現場後繼續工作
git stash list 檢視儲存的工作現場
git stash apply 恢復現場,但stashd內容並不刪除,需要在用命令 git satsh drop 來刪除
git stash pop 恢復的同時直接把stash內容也刪除