初始化配置
# 配置使用git倉庫的人員姓名
git config --global user.name "Your Name Comes Here"
# 配置使用git倉庫的人員email
git config --global user.email you@yourdomain.example.com
# 配置到緩存 默認15分鐘
git config --global credential.helper cache
# 修改緩存時間
git config --global credential.helper 'cache --timeout=3600'
# 列舉全部配置
git config --list
增刪改查
git help # 顯示幫助
git add <file> # 將工做文件修改提交到本地暫存區
git add . # 將全部修改過的工做文件提交暫存區
git rm <file> # 從版本庫中刪除文件
git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件
git reset <file> # 從暫存區恢復到工做文件
git reset -- . # 從暫存區恢復到工做文件
git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的全部本次修改
git revert <$id> # 恢復某次提交的狀態,恢復動做自己也建立了一次提交對象
git revert HEAD # 恢復最後一次提交的狀態
查看文件
git diff <file> # 比較當前文件和暫存區文件差別
git diff # 默認比較也是同上
git diff <$id1> <$id2> # 比較兩次提交之間的差別
git diff <branch1>..<branch2> # 在兩個分支之間比較
git diff --staged # 比較暫存區和版本庫差別
git diff --cached # 比較暫存區和版本庫差別
git diff --stat # 僅僅比較統計信息
查看提交記錄
git log
git log <file> # 查看該文件每次提交記錄
git log -p <file> # 查看每次詳細修改內容的diff
git log -p -2 # 查看最近兩次詳細修改內容的diff
git log --stat # 查看提交統計信息
tig # Mac上能夠使用tig代替diff和log,brew install tig
倉庫管理
# 初始化一個版本倉庫
git init
# Clone遠程版本庫
git clone git@xbc.me:wordpress.git
# 添加遠程版本庫origin,語法爲 git remote add [shortname] [url]
git remote add origin git@xbc.me:wordpress.git
# 查看遠程倉庫
git remote -v
# 修改遠程倉庫地址
git remote set-url origin git@ github.com:robbin/robbin_site.git
# 刪除遠程倉庫
git remote rm <repository>
工做流管理
# 添加當前修改的文件到暫存區
git add .
# 若是你自動追蹤文件,包括你已經手動刪除的,狀態爲Deleted的文件
git add -u
# 提交你的修改
git commit –m "你的註釋"
# 推送你的更新到遠程服務器,語法爲 git push [遠程名] [本地分支]:[遠程分支]
git push origin master
# 查看文件狀態
git status
# 跟蹤新文件
git add readme.txt
# 從當前跟蹤列表移除文件,並徹底刪除
git rm readme.txt
# 僅在暫存區刪除,保留文件在當前目錄,再也不跟蹤
git rm –cached readme.txt
# 重命名文件
git mv reademe.txt readme
# 查看提交的歷史記錄
git log
# 修改最後一次提交註釋的,利用–amend參數
git commit --amend
# 已使用git add .,將修改過的文件a、b加到暫存區,現只想提交a,不想提交b
git reset HEAD b
# 取消對文件的修改
git checkout –- readme.txt
------------------------------擴展一下------------------------------
# 暫存
git stash
# 列全部stash
git stash list
# 恢復暫存的內容
git stash apply
# 刪除暫存區
git stash drop
分支管理
git br -r # 查看遠程分支
git br <n_br> # 建立新的分支
git br -v # 查看各個分支最後提交信息
git merge <br> # 將br分支合併到當前分支
git br --merged # 查看已經被合併到當前分支的分支
git br --no-merged # 查看還沒有被合併到當前分支的分支
git co <br> # 切換到某個分支
git co -b <n_br> # 建立新的分支,而且切換過去
git co -b <n_br> <brh> # 基於br建立新的n_br
git co $id # 把某次歷史提交記錄co出來,無分支信息,切換分支會自動刪除
git co $id -b <n_br> # 把某次歷史提交記錄co出來,建立成一個分支
git br -d <br> # 刪除某個分支
git br -D <br> # 強制刪除某個分支 (未被合併的分支被刪除的時候須要強制)
------------------------------遠程分支------------------------------
git pull # 拉取遠程倉庫全部分支更新併合併到本地
git pull --no-ff # 拉取遠程倉庫全部分支更新併合併到本地,不快進合併
git fetch or # 拉取遠程倉庫更新
git merge or/master # 將遠程主分支合併到本地當前分支
git co --track or/br # 跟蹤某個遠程分支建立相應的本地分支
git push # push全部分支
git push or master # 將本地主分支推到遠程主分支
git push -u or master # 同上(如無遠程主分支則建立,用於初始化遠程倉庫)
git push origin <lo_br> # 建立遠程分支, origin是遠程倉庫名
git push origin :<re_br> # 先刪除本地分支(git br -d <br>),後再push刪除遠程分支
補丁管理
git diff > ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch # 測試補丁可否成功
# 方便在多臺機器上開發同步時用