1. 程式人生 > >git使用(下) ——常用命令總結

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內容也刪除