您的位置:首页 > 其它

git命令汇总

2016-03-06 17:08 253 查看
===================================================================== diff =====================================================================

git diff --check 检查多余空白

git diff --cache --check 检查多余空白

===================================================================== log =====================================================================

git log --no-merges 不显示merge的log

git log --no-merges branch1...branch2 显示在branch2但不在branch1中的提交信息

$ git log --abbrev-commit --pretty=oneline             显示SHA-1号简短唯一
ca82a6d changed the version number
085bb3b removed unnecessary test code
a11bef0 first commit


git log --oneline --decorate --graph --all like gitk --all

$ git log -g master                            查看类似于 git log 输出格式的引用日志信息
commit 734713bc047d87bf7eac9674765ae793478c50d3
Reflog: master@{0} (Scott Chacon <schacon@gmail.com>)
Reflog message: commit: fixed refs handling, added gc auto, updated
Author: Scott Chacon <schacon@gmail.com>
Date:   Fri Jan 2 18:32:33 2009 -0800

fixed refs handling, added gc auto, updated tests


git log master..experiment 查看在experiment分支中的提交,且该提交不在master分支中

git log origin/master..HEAD 查看当前分支中不在远程中的提交。 在..的两边中,如果有一边为空,则默认为HEAD

$ git log refA..refB                        三条命令等价
$ git log ^refA refB
$ git log refB --not refA


$
git log refA refB ^refC
$
git log refA refB --not refC 所有被
refA
refB
包含的但是不被
refC
包含的提交[/code]
git log master...experiment 查看两个分支中非共同的提交-->等价于执行git log master..experiment的结果加上再执行git log experiment..master的结果

git log --left-right master...experiment 同上,但显示出提交属于哪个分支

git show --name-only 3c0d42bd33f9bd1da50e858d6a7f52f6b35707b6 显示这次commit影响的文件名

====================================================================== reflog ====================================================================

$ git reflog       引用日志只存在于本地仓库,一个记录你在你自己的仓库里做过什么的日志。 其他人拷贝的仓库里的引用日志不会和你的相同;而你新克隆一个仓库的时候,引用日志是空的,因为你在仓库里还没有操作。
734713b HEAD@{0}: commit: fixed refs handling, added gc auto, updated
d921970 HEAD@{1}: merge phedders/rdocs: Merge made by recursive.


====================================================================== show ====================================================================

$ git show HEAD@{5}

$ git show master@{yesterday}           显示昨天该分支的顶端指向了哪个提交。 这个方法只对还在你引用日志里的数据有用

$ git show HEAD@{2.months.ago}


$ git show d921970^

$ git show d921970^2                          第二父提交

$
git show HEAD~3 第三父提交[/code]
$
git show HEAD^^^[/code]

==================================================================== rev-parse ======================================================================

$ git rev-parse topic1              查看分支的SHA-1值
ca82a6dff817ec66f44342007202690a93763949


==================================================================== branch ======================================================================

$ git branch        本地branch
* master

$ git branch -r     远程branch
origin/master

$ git branch -a     所有branch
* master
remotes/origin/master


$ git branch -v
* master a00daa0 [ahead 2] add servlet-api.jar in libs

$ git branch -vv        显示跟踪关系
* master a00daa0 [origin/master: ahead 2] add servlet-api.jar in libs


git branch --ser-upstream [local branch] [remote branch]

================================================================= add =========================================================================

git add -i 交互式暂存

git add -p 暂存部分补丁,等价于 git add --patch

================================================================= stash ==========================================================================

git stash or git stash save

git stash list

git stash apply ==> git stash apply stash@{0}

git stash apply stash@{1}

git stash apply --index 如果在stash之前有staged,使用改命令后仍是staged,否则是changed且未在staged中

git stash pop ==> git stash apply stash@{0} + git stash drop stash@{0}

git stash pop --index

git stash drop ==> git stash drop stash@{0}

git stash drop stash@{1}

git stash --keep-index 只储存staged的

git stash -u or git stash --include-untracked 也储存未跟踪的文件

git stash --patch 只储存某一部分

git stash branch [new branch] ==> git checkout -b [new branch] + git stash pop

git stash --all 移除未被追踪的文件, 并存放在栈中

================================================================ clean ==========================================================================

git clean 移除未跟踪的文件

git clean -d 移除未跟踪的目录,包括该目录中的文件

git clean -f 强制移除

git clean -n -n用来做一次演习然后告诉你 将要 移除什么

git clean -i 交互模式

git clean -x
git clean
命令只会移除没有忽略的未跟踪文件,任何与
.gitiignore
或其他忽略文件中的模式匹配的文件都不会被移除。 如果你也想要移除那些文件,可以给 clean 命令增加一个
-x
选项

=============================================================== checkout ==========================================================================

git checkout --conflict=merge [conflict file] 回到[conflict file]未解决冲突时的状态

git checkout -b [new branch] [old branch]

================================================================ revert ==========================================================================

git revert -m 1 HEAD -m 选择返回到哪个分支的状态,1表示merge时的当前分支,2表示要merge的分支。revert表示弃用未选中分支(当前命令表示选中了1,未选中2)的内容。

git revert [SAH-1] 为了在重新合并中不弃用未选中分支内容,需要再次翻转

================================================================ blame ==========================================================================

git blame [file] 标注文件,查看这个文件每一行的最后修改时间以及修改作者

git blame -L 5,15 [file] -L 用于限制查看哪些行

git blame -C -L 5,15 [file] -C 用于查看各行的原始出处

================================================================ bisect ==========================================================================

$ git bisect start
$ git bisect bad
$ git bisect good [good version]
...
$ git bisect reset

$ git bisect start [bad version] [good version]


================================================================ bare ==========================================================================

git init --bare

git clone --bare [a repo] [a remote repo you want to create(named .git at the end)]

================================================================ remote ==========================================================================

git remote add [remote-ref-new-name] [url]

git remote -v

git remote show [remote-ref-name]

git remote rename [old name] [new name]

git remote rm [remote-ref-name]

================================================================ submodule ==========================================================================

git submodule add [url]

git submodule add [url] [remote-ref-new-name]

$ git clone [url]                         clone含有子模块的远程库
$ git submodule init
$ git submodule update

$ git clone --recursive [url]             等价于以上三条命令


================================================================ clone ==========================================================================

git clone [url]

git clone [url] [local dir name]

git clone -o [alternative name for origin] [url]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: