git remote - 管理遠程分支api
#只顯示遠程倉庫名 git remote #使用-v 選項,能夠看到遠程倉庫的網址 git remote -v #添加主機名,能夠查看遠程倉庫詳細信息 git remote show origin #用於添加遠程倉庫 git remote add <倉庫名> <網址> #修改倉庫名 git remote rename <原倉庫名> <新倉庫名> #刪除倉庫 git remote rm <主機名>
示例bash
git pull/fetch - 拉取遠程倉庫最新改動app
#取回遠程倉庫的全部更新 git fetch <遠程倉庫> #取回指定倉庫的指定分支 git fetch <遠程倉庫> <分支名> #拉取本分支最新內容,和fetch區別是拉取並自動合併,建議使用 git pull
git branch - 分支操做fetch
#以當前分支爲根基,建立新的分支,不會切換到新的分支 git branch <新分支> #以當前分支爲根基,建立新分支並切換到新分支 git checkout -b <新分支> #查看遠程分支 git branch -r #查看全部分支 * 表明當前所在分支 git branch -a #若是刪除分支沒有合併到當前分支,刪除會失敗 #能夠用git branch --merged和git branch --no-merged查看 git branch -d <分支名> #強制刪除 git branch -D <分支名> #刪除遠程分支 git push origin --delete <分支>
合併url
合併有兩個命令可使用,分別是git merge和git rebasespa
git merge - 合併指針
#把分支合併到當前分支 git merge <被合併的分支> #合併衝突解決 git add <衝突的文件>
git rebase - 變基日誌
#把當前分支的根基變爲新根基 git rebase <新基> #衝突 git rebase --continue #取出 client 分支,找出處於 client 分支和 server 分支的共同祖先以後的修改,然 後把它們在 master 分支上重演一遍 git rebase --onto master server client
示例code
比較
這兩個命令都是把分支合併到當前分支,只不過一個是合併,一個是首先變基再合併,變基使的提交歷史更加整潔。可是通常推薦使用git merge便可,防止帶來沒必要要的麻煩。
git merge
是三方合併,以下例C二、C三、C4合併
git rebase是變換根基,就是把C2->C4的變動,在C3在應用一次,把C4的根基變爲C3,而後移動Master指針便可,因此更快,可是不要對在你的倉庫外有副本的分支執行變基。
git diff - 查看變動
# 工做區和暫存區的差別 git diff <文件名> #暫存區和本地倉庫的差別 git diff --cached <文件名> #工做區和本地倉庫的差別 git diff <commit> <文件名> #比較任意兩次提交的差別 git diff <commit> <commit>
示例
# 比較a.txt本地倉庫和工做目錄的差別 git diff HEAD a.txt # 比較HEAD和HEAD~2的提交差別 git diff HEAD HEAD~2
git log - 查看提交歷史
# -p,用來顯示每次提交的內容差別 # 加上 -2 ,只顯示最近的兩次提交 git log -p -2 #選項在每次提交的下面列出額全部被修改過的文件、有多少文件被修改了以及被修改 過的文件的哪些行被移除或是添加了 git log --stat #自定義輸出格式 git log --pretty=format git log --pretty=format:"%h - %an, %ar : %s" #輸出的SHA-1值縮寫,並在一行輸出 git log --abbrev-commit --oneline #根據提交者名字查找 git log --author=huan.liu10 #根據日期過濾 git log --after="2014-7-1" --before="2014-7-4" #根據提交信息過濾 git log --grep=刪除 #根據文件過濾,只顯示針對某個文件改動的記錄 git log -- a.txt b.txt #根據內容搜索,查看某個內容的變更記錄 git log -Saaaaaaaaaaa --oneline
引用日誌,能夠查看全部提交歷史,包括刪除的,能夠用來恢復
git reflog
git show - 查看提交詳細內容
# 顯示HEAD的提交日誌 git show HEAD # 顯示HEAD上一個版本提交的日誌 git show HEAD^
git commit - 提交
#合併上一次提交或者從新編輯上一次提交,只有一次提交記錄 git commit --amend
git reset - 恢復/撤銷
#撤銷commit,從本地倉庫到暫存區,不會丟失數據 git reset --soft <commit> #撤銷暫存區,從暫存區到工做目錄,不會丟失數據 git reset <文件名> #撤銷commit,從本地倉庫到工做目錄,會丟失數據,若是想恢復丟失commit,使用git reflog git reset --hard <commit>
git checkout - 切換分支/撤銷修改
#切換分支 git checkout <branch> #使用本地倉庫的文件內容覆蓋工做目錄內容,也就是撤銷對文件修改 git checkout -- <文件名>
git stash - 暫存
當不得不切到另一個分支,可是又不想提交時使用
# 暫存工做目錄和暫存區 git stash #查看暫存列表 git stash list #不會刪除暫存記錄 git stash apply --index #會刪除暫存記錄 git stash pop --index