1.git log git
顯示倉庫的歷史記錄,默認顯示全部記錄,app
1)git log -m,顯示最近的幾回提交,, post
2)git log --pretty=oneline 顯示提交hash和註釋url
-p 按補丁格式顯示每一個更新之間的差別。
--stat 顯示每次更新的文件修改統計信息。
--shortstat 只顯示 --stat 中最後的行數修改添加移除統計。
--name-only 僅在提交信息後顯示已修改的文件清單。
--name-status 顯示新增、修改、刪除的文件清單。
--abbrev-commit 僅顯示 SHA-1 的前幾個字符,而非全部的 40 個字符。
--relative-date 使用較短的相對時間顯示(好比,「2 weeks ago」)。
--graph 顯示 ASCII 圖形表示的分支合併歷史。
--pretty 使用其餘格式顯示歷史提交信息。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。spa
2.git reflog 查看命令歷史.net
3.git resetcode
1)git reset --hard HEAD^ 回退到當前的上一個版本orm
用HEAD
表示當前版本,上一個版本就是HEAD^
,上上一個版本就是HEAD^^
,固然往上100個版本寫100個^
比較容易數不過來,因此寫成HEAD~100
blog
2) git reset --soft HEAD^ 回退到當前的上一個版本,可是內容放回到倉庫中,這個命令經常使用於合併屢次提交爲一次,或者製做補丁用ci
4.git branch 建立分支
1)git checkout -b dev hash 在某個點上建立dev分支,並切換到dev分支
2)git branch 查看分支
3)git branch -d dev 刪除分支
4)git push origin :remote-branch-name 刪除遠程分支,:前面的空格不能省,原理是push一個空分支到遠程的對應分支,至關於刪除
5.git remote 管理倉庫地址
1)git remote -v 查看倉庫地址
2)git remote add test1 xxx 添加一個倉庫地址
3)git remote rename test1 test2
4)git remote set-url test2 xx2 修改url
6.git pull 拉倉庫
1)git pull remotename branchname 拉指定倉庫
http://blog.csdn.net/wfdtxz/article/details/8632811
7.git commit 提交
1)git commit -m "message" -- file1 file2 ... 提交多個文件
2)git commit -m "message" . 提交本目錄下的全部文件
3)git commit -m "message" -- folder
-a 全部文件
--amend 修改上次修改
--allow-empty-message -m ""
7.git push 推送倉庫
git push <遠程主機名> <本地分支名>:<遠程分支名>
git push origin master
8.git stash 暫時存儲修改
1)git stash 保存工做現場
2)git stash pop 彈出最上面一個stash並刪除
3)git stash list 查看stash列表
4)git stash apply stash@{0} 應用某個stash可是不從list中刪除
9.git tag 製做標籤
1) git tag 查看標籤
2)git tag v0.1 xxx 在某個點上建立v0.1的標籤
3)git tag -d v0.1 刪除v0.1tag
4)git push origin v0.1 推送tag到遠程
5)git push origin --tags 推送本地的全部標籤
6)git push origin :refs/tags/v0.1 刪除遠程的v0.1標籤
10. git clean 清除
-f 強制刪除 -d 目錄 -x 刪除不在版本庫的包括忽略的文件, -X 刪除僅僅忽略的文件
11. git 配置別名
1) git config --global alias.st status ==>> git st
2) git config --global alias.co checkout ===>>git co
3) git config --global alias.ci commit ===>>git ci
4) git config --global alias.br branch ====>>git br
12.git format-patch git補丁應用
1)git format-patch 365a...4e16 兩次提交直接的補丁,可能有多個
2)git format-patch -n 07fe 某次提交以前的幾回提交
應用補丁
3)git apply --stat newpatch.patch 檢查patch文件
4)git apply --check newpatch.patch 檢查可否應用成功
5)git apply --reject newpatch.patch 合併無衝突的,有衝突的產生.rej 文件,原始文件不修改
5)編輯衝突文件,修改提交
6)git am --resolved 標記解決了
13.git diff 標準補丁
1) git diff master..test --binary 只顯示兩個分支間的差別,
-- ./lib 加上限定符,只比較某個目錄
Linux下的diff命令 diff -uN f1 f2
2) git apply --check 檢查補丁 --check 檢查補丁, 沒有check直接應用補丁
3)patch -p1 patchfile 補丁文件 若是有衝突會生成三個文件,.orig是原始文件,.rej是衝突的修改地方.另外一個是修改後的文件
diff --git a/test1/b.txt b/test1/b.txt index e69de29..36aa66d 100644 --- a/test1/b.txt +++ b/test1/b.txt @@ -0,0 +1 @@ +12323
-p 指定目錄級別,-p0 使用完整路徑,-p1 去除前導斜槓,留下test1/b.txt, -p2 剩下b.txt
-R 反不掉,能夠對此次的補丁恢復回來
應用補丁衝突 http://www.fwolf.com/blog/post/448
14.git bisect 二叉樹定位版本錯誤
1)git bisect start
2)git bisect bad
3)git bisect good xxx
4)git bisect reset 最後完成,回到當前位置
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
http://git-scm.com/docs/gittutorial