git 常用指令講解
檔案的幾種狀态
- 已送出(commited/unmodified),已被儲存在本地
- 已修改(modified),已修改,未儲存
- 已暫存(staged),下次送出将儲存
- 未跟蹤(untracked),建立檔案為未跟蹤
git 基礎指令
- git config –global user.name “your name”
- git config –global user.email “your email”
- git clone 從遠端克隆代碼
- git add files将檔案加入到暫存區
- git status 檢視工作區檔案狀态
- git commit 送出暫存區檔案
- git commit –amend 撤銷上一次的送出
- git show id 檢視某次修改的内容
- git diff file 檢視目前檔案和暫存區檔案差異
- git diff –staged 比較暫存區和版本庫差異
- git diff id1 id2 檢視某2次送出的差異
- git log 檢視送出記錄
- git log file 檢視檔案的送出記錄
- git log -p file檢視檔案送出記錄差異
- git log -p 2檢視最近兩次送出差異記錄
- git log –stat 檢視所修改檔案
- git log –pretty=oneline/short/full/fuller
- git rm file 從版本庫中删除檔案
- git rm –cached file 從版本庫中删除跟蹤,但不删除檔案
- git reset file 撤銷送出,從暫存區恢複檔案到unstage
- git reset –hard 撤銷送出,恢複到最近送出的一次狀态,放棄修改
- git revert $id 用于直接取消指定某一次的送出,并且會形成兩個曆史記錄
關于分支
1、建立分支
- git branch 分支名 建立新的分支
- git checkout 分支名 切換到對應分支
- git fetch origin master:tmp 擷取最新的代碼到tmp分支
git checkout -b 分支名 建立分支并切換到對應分支;相當于:git - branch + git checkout
注:切換分支前将先前分支的修改commit
2、檢視分支
- git branch 檢視本地分支
- git branch -r 檢視遠端分支
- git branch -v 檢視各個分支最後一個送出對象的資訊
- git branch –merged 篩選出你已經與目前分支合并的分支
- git branch –no-merged 篩選出尚未與目前分支合并的分支
3、合并分支
合并分支到master分支
- git checkout master
- git merge 需要合并的分支名
4、遠端分支
推送本地分支
git push origin 分支名
擷取遠端分支更新
git pull origin 分支名
删除遠端分支
git push origin :分支名
克隆遠端分支到本地分支
git checkout -b 本地分支名 origin/遠端分支名
關于标簽
1、列出标簽
- git tag —–列出所有的标簽
git tag -l ‘過濾資訊’ —–列出指定條件過濾的标簽
例如:
git tag -l ‘a*’ 代表列出以a開頭的标簽名對應的所有标簽
2、建立标簽
Git 使用兩種主要類型的标簽:輕量标簽(lightweight)與附注标簽(annotated)。
一個輕量标簽很像一個不會改變的分支 - 它隻是一個特定送出的引用。
然而,附注标簽是存儲在 Git 資料庫中的一個完整對象。 它們是可以被校驗的;其中包含打标簽者的名字、電子郵件位址、日期時間;還有一個标簽資訊;并且可以使用 GNU Privacy Guard (GPG)簽名與驗證。 通常建議建立附注标簽,這樣你可以擁有以上所有資訊;但是如果你隻是想用一個臨時的标簽,或者因為某些原因不想要儲存那些資訊,輕量标簽也是可用的。
2.1建立輕量标簽
- git tag 标簽名
建立附注标簽
git tag -a 标簽名 -m ‘标簽描述資訊’
後期打标簽:對先前送出的某個commit進行打标簽的操作
git tag -a 标簽名 -m ‘标簽描述’ 對應commit的校驗和(或部分校驗和)
3、檢視某個标簽資訊
git show 标簽名
4、檢出标簽
git checkout -b [分支名] [标簽名]
5、共享标簽(送出标簽到遠端伺服器)
git push origin [标簽名]
git push origin –tags 送出所有不在遠端倉庫的标簽
6、删除本地标簽
git tag –d [标簽名]