經常使用git命令

經常使用git命令git

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 mergegit 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
相關文章
相關標籤/搜索