git用法

chapter: 8 add 添加文件内容至索引

用法:git add [选项] [--] <路径匹配>...

-n, --dry-run         演习
-v, --verbose         冗长输出

-i, --interactive     交互式拣选
-p, --patch           交互式挑选数据块
-e, --edit            编辑当前差异并应用
-f, --force           允许添加忽略的文件
-u, --update          更新已跟踪的文件
-N, --intent-to-add   只记录,该路径稍后再添加
-A, --all             添加所有改变的已跟踪文件和未跟踪文件
--ignore-removal      忽略工作区中移除的路径(和 --no-all 相同)
--refresh             不添加,只刷新索引
--ignore-errors       跳过因出错不能添加的文件
--ignore-missing      检查在演习模式下文件(即使不存在)是否被忽略

chapter: 9 bisect 通过二分查找定位引入 bug 的变更

usage: git bisect [help|start|bad|good|skip|next|reset|visualize|replay|log|run]

git bisect help
        print this long help message.
git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<pathspec>...]
        reset bisect state and start bisection.
git bisect bad [<rev>]
        mark <rev> a known-bad revision.
git bisect good [<rev>...]
        mark <rev>... known-good revisions.
git bisect skip [(<rev>|<range>)...]
        mark <rev>... untestable revisions.
git bisect next
        find next bisection to test and check it out.
git bisect reset [<commit>]
        finish bisection search and go back to commit.
git bisect visualize
        show bisect status in gitk.
git bisect replay <logfile>
        replay bisection log.
git bisect log
        show bisect log.
git bisect run <cmd>...
        use <cmd>... to automatically bisect.

Please use "git help bisect" to get the full man page.

chapter: 10 branch 列出、创建或删除分支

用法:git branch [选项] [-r | -a] [--merged | --no-merged]
或:git branch [选项] [-l] [-f] <分支名> [<起始点>]
或:git branch [选项] [-r] (-d | -D) <分支名>...
或:git branch [选项] (-m | -M) [<旧分支>] <新分支>

通用选项
-v, --verbose 显示哈希值和主题,若参数出现两次则显示上游分支
-q, --quiet 不显示信息
-t, --track 设置跟踪模式(参见 git-pull(1))
--set-upstream 改变上游信息
-u, --set-upstream-to
change the upstream info
--unset-upstream Unset the upstream info
--color[=<何时>] 使用彩色输出
-r, --remotes 作用于远程跟踪分支
--contains <提交> 只打印包含该提交的分支
--abbrev[=] 用 位数字显示 SHA-1 哈希值

具体的 git-branch 动作:
-a, --all 列出远程跟踪及本地分支
-d, --delete 删除完全合并的分支
-D 删除分支(即使没有合并)
-m, --move 移动/重命名一个分支,以及它的引用日志
-M 移动/重命名一个分支,即使目标已存在
--list 列出分支名
-l, --create-reflog 创建分支的引用日志
--edit-description 标记分支的描述
-f, --force 强制创建(当已经存在)
--no-merged <提交> 只打印没有合并的分支
--merged <提交> 只打印合并的分支
--column[=<风格>] 以列的方式显示分支

chapter: 11 checkout 检出一个分支或路径到工作区

用法:git checkout [选项] <分支>
或:git checkout [选项] [<分支>] -- <文件>...

-q, --quiet           不显示进度报告
-b <分支>             创建并检出一个新的分支
-B <分支>             创建/重置并检出一个分支
-l                    为新的分支创建引用日志
--detach              成为指向该提交的分离头指针
-t, --track           为新的分支设置上游信息
--orphan <新分支>     新的没有父提交的分支
-2, --ours            对尚未合并的文件检出我们的版本
-3, --theirs          对尚未合并的文件检出他们的版本
-f, --force           强制检出(丢弃本地修改)
-m, --merge           和新的分支执行三路合并
--overwrite-ignore    更新忽略的文件(默认)
--conflict <风格>     冲突输出风格(merge 或 diff3)
-p, --patch           交互式挑选数据块
--ignore-skip-worktree-bits
                      对路径不做稀疏检出的限制

chapter: 12 clone 克隆一个版本库到一个新目录

用法:git clone [选项] [--] <版本库> [<路径>]

-v, --verbose         更加详细
-q, --quiet           更加安静
--progress            强制显示进度报告
-n, --no-checkout     不创建一个检出
--bare                创建一个裸版本库
--mirror              创建一个镜像版本库(也是裸版本库)
-l, --local           从本地版本库克隆
--no-hardlinks        不使用本地硬链接,始终复制
-s, --shared          设置为共享版本库
--recursive           在克隆时初始化子模组
--recurse-submodules  在克隆时初始化子模组
--template <模板目录>
                      模板目录将被使用
--reference <版本库>  引用版本库
-o, --origin <名称>   使用<名称>而不是 'origin' 去跟踪上游
-b, --branch <分支>   检出<分支>而不是远程HEAD
-u, --upload-pack <路径>
                      远程 git-upload-pack 路径
--depth <深度>        创建一个指定深度的浅克隆
--single-branch       只克隆一个分支、HEAD 或 --branch
--separate-git-dir <git目录>
                      git目录和工作区分离
-c, --config <key=value>
                      在新版本库中设置配置信息

chapter: 13 commit 记录变更到版本库

用法:git commit [选项] [--] <路径匹配>...

-q, --quiet           提交成功后不显示概述信息
-v, --verbose         在提交说明模板里显示差异

提交说明选项
-F, --file <文件> 从文件中读取提交说明
--author <作者> 提交时覆盖作者
--date <日期> 提交时覆盖日期
-m, --message <说明> 提交说明
-c, --reedit-message <提交>
重用并编辑指定提交的提交说明
-C, --reuse-message <提交>
重用指定提交的提交说明
--fixup <提交> 使用 autosquash 格式的提交说明用以修正指定的提交
--squash <提交> 使用 autosquash 格式的提交说明用以压缩至指定的提交
--reset-author 现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)
-s, --signoff 添加 Signed-off-by: 签名
-t, --template <文件>
使用指定的模板文件
-e, --edit 强制编辑提交
--cleanup 设置如何删除提交说明里的空格和#注释
--status 在提交说明模板里包含状态信息
-S, --gpg-sign[=]
GPG 提交签名

提交内容选项
-a, --all 提交所有改动的文件
-i, --include 添加指定的文件到索引区等待提交
--interactive 交互式添加文件
-p, --patch 交互式添加变更
-o, --only 只提交指定的文件
-n, --no-verify 绕过 pre-commit 钩子
--dry-run 显示将要提交的内容
--short 以简洁的格式显示状态
--branch 显示分支信息
--porcelain 机器可读的输出
--long 以长格式显示状态(默认)
-z, --null 条目以NUL字符结尾
--amend 修改先前的提交
--no-post-rewrite 绕过 post-rewrite 钩子
-u, --untracked-files[=<模式>]
显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)

chapter: 14 diff 显示提交之间、提交和工作区之间等的差异

usage: git diff [--no-index]

chapter: 15 fetch 从另外一个版本库下载对象和引用

用法:git fetch [<选项>] [<版本库> [<引用表达式>...]]
或:git fetch [<选项>] <组>
或:git fetch --multiple [<选项>] [(<版本库> | <组>)...]
或:git fetch --all [<选项>]

-v, --verbose         更加详细
-q, --quiet           更加安静
--all                 从所有的远程抓取
-a, --append          追加到 .git/FETCH_HEAD 而不是覆盖它
--upload-pack <路径>  上传包到远程的路径
-f, --force           强制覆盖本地分支
-m, --multiple        从多个远程抓取
-t, --tags            抓取所有的 tags 和关联对象
-n                    不抓取任何 tags (--no-tags)
-p, --prune           清除远程已经不存在的分支的跟踪分支
--recurse-submodules[=<on-demand>]
                      控制子模组的递归抓取
--dry-run             演习
-k, --keep            保持下载包
-u, --update-head-ok  允许更新 HEAD 引用
--progress            强制显示进度报告
--depth <深度>        深化浅克隆的历史
--unshallow           转换为一个完整的版本库

chapter: 16 grep 输出和模式匹配的行

用法:git grep [选项] [-e] <模式> [<修订>...] [[--] <路径>...]

--cached              在索引区搜索而不是在工作区
--no-index            在未被 git 管理的内容中查找
--untracked           在跟踪和未跟踪的文件中搜索
--exclude-standard    也在忽略的文件中搜索

-v, --invert-match    显示未匹配的行
-i, --ignore-case     不区分大小写匹配
-w, --word-regexp     只在单词边界匹配模式
-a, --text            把二进制文件当做文本处理
-I                    不在二进制文件中匹配模式
--max-depth <深度>    最多以指定的深度向下寻找

-E, --extended-regexp
                      使用扩展的 POSIX 正则表达式
-G, --basic-regexp    使用基本的 POSIX 正则表达式(默认)
-F, --fixed-strings   把模式解析为固定的字符串
-P, --perl-regexp     使用 Perl 兼容的正则表达式

-n, --line-number     显示行号
-h                    不显示文件名
-H                    显示文件名
--full-name           显示相对于顶级目录的文件名
-l, --files-with-matches
                      只显示文件名而不显示匹配的行
--name-only           和 --files-with-matches 同义
-L, --files-without-match
                      只显示未匹配的文件名
-z, --null            在文件名后输出 NUL 字符
-c, --count           显示总匹配行数,而不显示匹配的行
--color[=<何时>]      高亮显示匹配项
--break               在不同文件的匹配项之间打印空行
--heading             只在同一文件的匹配项的上面显示一次文件名

-C, --context <n>     显示匹配项前后的 <n> 行上下文
-B, --before-context <n>
                      显示匹配项前 <n> 行上下文
-A, --after-context <n>
                      显示匹配项后 <n> 行上下文
-数字                 快捷键 -C 数字
-p, --show-function   在匹配的前面显示一行函数名
-W, --function-context
                      显示所在函数的前后内容

-f <文件>             从文件读取模式
-e <模式>             匹配 <模式>
--and                 组合用 -e 参数设定的模式
--or                  
--not                 
(                     
)                     
-q, --quiet           不输出,而用退出码标识命中状态
--all-match           只显示匹配所有模式的文件中的匹配

-O, --open-files-in-pager[=<分页>]
                      分页显示匹配的文件
--ext-grep            允许调用 grep(1)(本次构建忽略)

chapter: 17 init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库

用法:git init [-q | --quiet] [--bare] [--template=<模板目录>] [--shared[=<权限>]] [目录]

--template <模板目录>
                      模板目录将被使用
--bare                创建一个裸版本库
--shared[=<权限>]     指定 git 版本库是多个用户之间共享的
-q, --quiet           保持安静
--separate-git-dir <git目录>
                      git目录和工作区分离

chapter: 18 log 显示提交日志

用法:git log [] [] [[--] ...]
or: git show [options]

posted @ 2015-11-06 13:19  轮子手  阅读(422)  评论(0编辑  收藏  举报