1. 程式人生 > >Git學習-Git基本命令

Git學習-Git基本命令

git init #初始化本地版本庫

git clone [email protected]:xxxxxx/****.git  #從xxxx使用者的****倉庫克隆遠端庫到本地

git status #檢視當前倉庫的狀態。顯示Changes not staged for commit    說明檔案的內容發生了變化,但還沒有放到暫存區。要暫存這次更新,需要執行 git add 命令新增檔案及git commit新增其修改說明;顯示nothing to commit, working tree clean   表示當前沒有需要提交的修改,而且工作目錄是乾淨(working tree clean)的。

git diff <file>  #可以檢視檔案做了什麼修改

git diff #比較的是工作區和暫存區的差別

git diff –cached #比較的是暫存區和版本庫的差別

git diff HEAD  #可以檢視工作區和版本庫的差別

git add <file> #將工作區儲存的檔案新增到暫存區

git rm <file>  #將暫存區的檔案刪除,同樣需要commit

git commit -m "message" #將暫存區裡的改動給提交到本地的版本庫。message是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄裡方便地找到改動記錄;新增引數-m表示可以直接輸入後面的“message”,如果不加 -m引數,那麼是不能直接輸入message的,而是會呼叫一個編輯器一般是vim來讓你輸入這個message。

每次使用git commit 命令我們都會在本地版本庫生成一個40位的雜湊值,這個雜湊值也叫commit-id,相當於唯一標識,commit-id在版本回退的時候是非常有用的,它相當於一個快照,可以在未來的任何時候通過與git reset的組合命令回到這裡。

git checkout --<file> #撤銷工作區檔案的修改,恢復檔案

git log #檢視修改歷史,顯示從最近到最早的提交日誌

git log --pretty=online #只檢視commit_id版本號和提交時的備註資訊

git reflog #檢視所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)

git reflog -n #指定顯示歷史版本記錄的條數

例如執行 git reset --hard HEAD~1,退回到上一個版本,用git log則是看不出來被刪除的commit_id,用git reflog則可以看到被刪除的commit_id,我們就可以買後悔藥,恢復到被刪除的那個版本。

git reset #回退版本

git reset --hard HEAD^  #回退到上一個版本,HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,往上100個版本HEAD~100

git reset --hard commit_id  #回退到指定的commit_id版本號,commit_id不需要寫全

git checkout *** #切換到***分支

git checkout -b ***  #建立***分支並且切換到***分支

git checkout -b *** xxx/***  #建立遠端xxx庫的***分支到本地***分支

git branch  #檢視所有分支名,* 表示當前所在分支

git branch ***  #建立***分支

git branch -d ***  #刪除***分支,-d引數可以改為-D,為強行刪除沒有被合併的分支

git merge ***  #將***分支合併到當前分支(預設啟用fast forward模式)

git merge --no-ff -m "message" ***#禁用fast forward模式合併分支,在merge時生成一個新的commit

git log --graph --pretty=oneline --abbrev-commit #檢視分支合併情況

git stash #把所有未提交的修改(包括暫存的和非暫存的)都儲存起來,用於後續恢復當前工作目錄

git stash pop  #回到儲存的工作現場

git remote  #檢視遠端倉庫資訊,-v引數可以檢視更詳細的資訊

git push origin master #將本地的origin倉庫的mster分支推送到遠端oigin倉庫對應的msater分支

git pull 抓取遠端分支的更新併合並

git branch --set-upstream-to=xxx/***  ***  #指定本地***分支與遠端庫xxx的***分支連結

git tag #檢視所有標籤

git tag v1.0  #給當前分支打標籤1.0版本

git tag v1.0 commit_id  #給指定的提交打標籤

git tag -a v0.1 -m "message" commit_id  #建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字

git push origin <tagname>  #推送某個版本的標籤到遠端,--tags #推送所有標籤

git tag -d v0.1  #刪除本地標籤

git push origin :refs/tags/v0.1   #刪除遠端origin庫的標籤

git show v1.0 #顯示1.0版本的具體資訊

git last  #最近一次提交

git config --global alias.** checkout  #設定checkout的別名為**