經常使用命令
查看、添加、提交、刪除、找回,重置修改文件git
git help # 顯示command的helpapp
git show # 顯示某次提交的內容 git show $id測試
git co -- # 拋棄工做區修改對象
git co . # 拋棄工做區修改ci
git add # 將工做文件修改提交到本地暫存區開發
git add . # 將全部修改過的工做文件提交暫存區同步
git rm # 從版本庫中刪除文件it
git rm --cached # 從版本庫中刪除文件,但不刪除文件ast
git reset # 從暫存區恢復到工做文件command
git reset -- . # 從暫存區恢復到工做文件
git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的全部本次修改
git ci git ci . git ci -a # 將git add, git rm和git ci等操做都合併在一塊兒作
git ci -am "some comments"
git ci --amend # 修改最後一次提交記錄
git revert <$id> # 恢復某次提交的狀態,恢復動做自己也建立次提交對象
git revert HEAD # 恢復最後一次提交的狀態
查看文件diff
git diff # 比較當前文件和暫存區文件差別 git diff
git diff # 比較兩次提交之間的差別
git diff .. # 在兩個分支之間比較
git diff --staged # 比較暫存區和版本庫差別
git diff --cached # 比較暫存區和版本庫差別
git diff --stat # 僅僅比較統計信息
查看提交記錄
git log git log # 查看該文件每次提交記錄
git log -p # 查看每次詳細修改內容的diff
git log -p -2 # 查看最近兩次詳細修改內容的diff
git log --stat #查看提交統計信息
tig
Mac上可使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切換、建立和刪除分支
git br -r # 查看遠程分支
git br # 建立新的分支
git br -v # 查看各個分支最後提交信息
git br --merged # 查看已經被合併到當前分支的分支
git br --no-merged # 查看還沒有被合併到當前分支的分支
git co # 切換到某個分支
git co -b # 建立新的分支,而且切換過去
git co -b # 基於branch建立新的new_branch
git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其餘分支會自動刪除
git co $id -b # 把某次歷史提交記錄checkout出來,建立成一個分支
git br -d # 刪除某個分支
git br -D # 強制刪除某個分支 (未被合併的分支被刪除的時候須要強制)
分支合併和rebase
git merge # 將branch分支合併到當前分支
git merge origin/master --no-ff # 不要Fast-Foward合併,這樣能夠生成merge提交
git rebase master # 將master rebase到branch,至關於: git co && git rebase master && git co master && git merge
Git補丁管理(方便在多臺機器上開發同步時用)
git diff > ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch #測試補丁可否成功
git stash
git stash save "這些是註釋啦"
新增工做現場(將當前的全部改動所有放入工做現場), git stash的默認註釋爲當前分支上一次commit的註釋
git stash list
顯示工做現場列表
git stash clear
清空工做現場列表(慎操做!)
git stash drop
git stash drop stash@{0}
刪除某一個工做現場,默認刪除最新工做現場:git stash drop = git stash drop stash@{0}
git stash pop
git stash pop stash@{0}
git stash pop --index stash@{0}
恢復工做現場的代碼(並刪除),默認恢復最新工做現場:git stash pop = git stash pop stash@{0}, --index 參數:不只恢復工做區,還恢復暫存區;
git stash apply
git stash apply --index stash@{0}
恢復工做現場的代碼(不刪除),默認恢復最新工做現場:git stash apply = git stash apply --index stash@{0}, --index 參數:不只恢復工做區,還恢復暫存區