• git命令汇总


     =====================================================================    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 包含的提交

    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                             第三父提交
    $ git show HEAD^^^

     ====================================================================    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]

  • 相关阅读:
    构建调试Linux内核网络代码的环境MenuOS系统
    关于iOS开发证书的一些总结(很有用)
    iOS原型模式
    iOS不用调用,running time自动执行方法
    关于网络设计服务结构的一些理解
    iOS 6.0之后支持一个页面横屏的方法
    iOS返回一个前面没有0,小数点后保留两位的数字字符串
    CoreData总结
    分享一个复用代码块的博客
    分享一个可以打开沙盒的软件
  • 原文地址:https://www.cnblogs.com/drizzlewithwind/p/5039841.html
Copyright © 2020-2023  润新知