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[=
具体的 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]