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] ...
--quiet 不显示差异输出
--source 显示源
--use-mailmap 使用邮件映射文件
--decorate[=...] 修饰选项
chapter: 19 merge 合并两个或更多开发历史
用法:git merge [选项] [<提交>...]
或:git merge [选项] <说明> HEAD <提交>
或:git merge --abort
-n 在合并的最后不显示差异统计
--stat 在合并的最后显示差异统计
--summary (和 --stat 同义)
--log[=<n>] 在合并提交信息中添加(最多 <n> 条)精简提交记录
--squash 创建一个单独的提交而不是做一次合并
--commit 如果合并成功,执行一次提交(默认)
-e, --edit 在提交前编辑提交说明
--ff 允许快进(默认)
--ff-only 如果不能快进就放弃合并
--rerere-autoupdate update the index with reused conflict resolution if possible
--verify-signatures 验证指定的提交是否包含一个有效的 GPG 签名
-s, --strategy <策略>
要使用的合并策略
-X, --strategy-option <option=value>
所选的合并策略的选项
-m, --message <说明> 合并的提交说明(针对非快进式合并)
-v, --verbose 更加详细
-q, --quiet 更加安静
--abort 放弃当前正在进行的合并
--progress 强制显示进度报告
-S, --gpg-sign[=<key id>]
GPG 提交签名
--overwrite-ignore 更新忽略的文件(默认)
chapter: 20 mv 移动或重命名一个文件、目录或符号链接
用法:git mv [选项] <源>... <目标>
-v, --verbose 冗长输出
-n, --dry-run 演习
-f, --force 强制移动/重命令,即使目标存在
-k 跳过移动/重命名错误
chapter: 21 pull 获取并合并另外的版本库或一个本地分支
usage: git pull [-n | --no-stat] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [] ...
Fetch one or more remote refs and merge it/them into the current HEAD.
chapter: 22 push 更新远程引用和相关的对象
用法:git push [<选项>] [<版本库> [<引用表达式>...]]
-v, --verbose 更加详细
-q, --quiet 更加安静
--repo <版本库> 版本库
--all 推送所有引用
--mirror 镜像所有引用
--delete 删除引用
--tags 推送 tags(不能使用 --all or --mirror)
-n, --dry-run 演习
--porcelain 机器可读的输出
-f, --force 强制更新
--recurse-submodules[=<检查>]
控制子模组的递归推送
--thin 使用精简打包
--receive-pack <receive-pack>
接收包程序
--exec <receive-pack>
接收包程序
-u, --set-upstream 设置 git pull/status 的上游
--progress 强制显示进度报告
--prune 清除本地删除的引用
--no-verify 绕过 pre-push 钩子
--follow-tags 推送缺失的有关的 tags
chapter: 23 rebase 本地提交转移至更新后的上游分支中
用法:git rebase [-i] [options] [--exec ] [--onto ] [] []
或:git rebase [-i] [options] [--exec ] [--onto ] --root []
或:git-rebase --continue | --abort | --skip | --edit-todo
Available options are
-v, --verbose display a diffstat of what changed upstream
-q, --quiet be quiet. implies --no-stat
--onto ... rebase onto given branch instead of upstream
-p, --preserve-merges
try to recreate merges instead of ignoring them
-s, --strategy ... use the given merge strategy
--no-ff cherry-pick all commits, even if unchanged
-m, --merge use merging strategies to rebase
-i, --interactive let the user edit the list of commits to rebase
-x, --exec ... add exec lines after each commit of the editable list
-k, --keep-empty preserve empty commits during rebase
-f, --force-rebase force rebase even if branch is up to date
-X, --strategy-option ...
pass the argument through to the merge strategy
--stat display a diffstat of what changed upstream
-n, --no-stat do not show diffstat of what changed upstream
--verify allow pre-rebase hook to run
--rerere-autoupdate allow rerere to update index with resolved conflicts
--root rebase all reachable commits up to the root(s)
--autosquash move commits that begin with squash!/fixup! under -i
--committer-date-is-author-date
passed to 'git am'
--ignore-date passed to 'git am'
--whitespace ... passed to 'git apply'
--ignore-whitespace passed to 'git apply'
-C ... passed to 'git apply'
Actions:
--continue continue
--abort abort and check out the original branch
--skip skip current patch and continue
--edit-todo edit the todo list during an interactive rebase
chapter: 24 reset 重置当前HEAD到指定状态
用法:git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<提交>]
或:git reset [-q] <树或提交> [--] <路径>...
或:git reset --patch [<树或提交>] [--] [<路径>...]
-q, --quiet 安静模式,只报告错误
--mixed 重置 HEAD 和索引
--soft 只重置 HEAD
--hard 重置 HEAD、索引和工作区
--merge 重置 HEAD、索引和工作区
--keep 重置 HEAD 但保存本地变更
-p, --patch 交互式挑选数据块
chapter: 25 rm 从工作区和索引中删除文件
用法:git rm [选项] [--] <文件>...
-n, --dry-run 演习
-q, --quiet 不列出删除的文件
--cached 只从索引区删除
-f, --force 忽略文件更新状态检查
-r 允许递归删除
--ignore-unmatch 即使没有匹配,也以零状态退出
chapter: 26 show 显示各种类型的对象
用法:git log [] [] [[--] ...]
or: git show [options] ...
--quiet 不显示差异输出
--source 显示源
--use-mailmap 使用邮件映射文件
--decorate[=...] 修饰选项
chapter: 27 status 显示工作区状态
用法:git status [选项] [--] <路径匹配>...
-v, --verbose 冗长输出
-s, --short 以简洁的格式显示状态
-b, --branch 显示分支信息
--porcelain 机器可读的输出
--long 以长格式显示状态(默认)
-z, --null 条目以NUL字符结尾
-u, --untracked-files[=<模式>]
显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)
--ignored 显示忽略的文件
--ignore-submodules[=<何时>]
忽略子模组的更改,“何时”的可选参数:all、dirty、untracked。(默认:all)
--column[=<风格>] 以列的方式显示未跟踪的文件
chapter: 28 tag 创建、列出、删除或校验一个GPG签名的 tag 对象
用法:git tag [-a|-s|-u ] [-f] [-m <说明>|-F <文件>] <标签名> [<头>]
或:git tag -d <标签名>...
或:git tag -l [-n[]] [--contains <提交>] [--points-at <对象>]
[<模式>...]
或:git tag -v <标签名>...
-l, --list 列出tag名称
-n[<n>] 每个 tag 信息打印 <n> 行
-d, --delete 删除 tags
-v, --verify 验证 tags
Tag 创建选项
-a, --annotate 注解 tag,需要一个说明
-m, --message <说明> tag 说明
-F, --file <文件> 从文件中读取提交说明
-s, --sign 注解并 GPG 签名的 tag
--cleanup <模式> 设置如何删除提交说明里的空格和#注释
-u, --local-user
使用另外的私钥签名 tag
-f, --force 如果存在,替换现有的 tag
--column[=<风格>] 以列的方式显示 tag
Tag 列表选项
--contains <提交> 只打印包含提交的tags
--points-at <对象> 只打印tags对象
git --help|awk 'NR>7 && NR<29'|awk '{print "echo chapter:",NR,$0,";","git ",$1," -h"}' |sh
git用法的更多相关文章
- git用法之常用命令[克隆、提交]
1.克隆/下载项目 1)git clone git@git.soydai.cn:liuxuewen/static-file-3.0.git 或者 2)git clone http://git.soyd ...
- Bitbucket - 用git 用法
核心流程: 从远端中心repo那里Git clone 到本地,再在本地开发(add, commit), 通常会利用branch管理,如果觉得code 没问题了,就push到远端的中心repo上.这里中 ...
- git用法大全
转载自实验楼,之前有更新过两篇git的文章,毕竟内容太少,而git还有很多更丰富的技能,在实验楼上有一系列全的教程,这里做一下备案.需要时查阅. Git 实战教程 目录 一.实验说明 二.git的初始 ...
- git用法汇总
使用了一年多的git命令了,昨晚竟然又出现了问题.虽然解决了,不过还是被罚了... 总结下自己常用的git命令和遇到的一些坑. 1)常用的命令 1. 从git远程分支clone代码: git clon ...
- git用法之常用命令
1.git 安装好后,如何配置? a: 设置本地用户名.邮箱,很重要!之后的每次提交都会用到这两条信息,说明是谁提交了更新. $ git config --global user.name " ...
- git用法之[回滚代码]
我们在写代码的任何过程中,都有可能出错,任何过程都有可能要!回!滚!代!码!事关重大!一定要详细讲讲. 一.关于 工作区.暂存区.本地分支: 工作区:即自己当前分支所修改的代码,git add xx ...
- GIT用法总结
1 git中的几种文件状态 a 未被git跟踪的文件,即是没有使用git add添加到git索引的的文件:untracked; b 没有修改但是已经被git跟踪的文件,即是使用git add添加到gi ...
- git 用法
git init #创建仓库git add _filename #添加文件到缓冲区git commit -m "msg" #提交更新,从缓冲区提交到版本库git status #查 ...
- 【转】25个Git用法技巧
Andy Jeffries 给 Git 中级用户总结分享的 25 个小贴士.你不需要去做大量搜索,或许这些小贴士对你就很有帮助的. 我从开始使用git到现在已经差不多18个月了,以为自己已经很懂git ...
随机推荐
- AceAdmin In MVC之控件
AceAdmin有很多Html控件,而下载下来之后全部混杂在一起,想用一个控件有时得调整半天,干脆整理出一个版本,而且结合起来MVC的封装.以后就不用一个js css的调了. 在MVC中Html的控件 ...
- ios NSString常见的字符串操作 分割 查找
1.NSString *str = [[NSString alloc]init]; //简单粗暴,基本用不到 2.NSString *str = [[NSString alloc]initWi ...
- .net orm比较之dapper和Entity Framework6的简单测试比较
.net orm比较之dapper和Entity Framework6的简单测试比较
- SQL 数据库 复制 与订阅 实现数据同步
摘自: http://www.jb51.net/article/18039.htm
- leetcode 70
70. Climbing Stairs You are climbing a stair case. It takes n steps to reach to the top. Each time y ...
- leetcode 19
最开始用一般的方法,首先遍历链表求出长度,进而求出需要删除节点的位置,最后进行节点的删除. 代码如下: /** * Definition for singly-linked list. * struc ...
- Linux日志
一.Linux 常見的日志文件 /var/log/cron:你的 crontab 排程有没有实际被进行? 进行过程有没有发生错误?你的 /etc/crontab 是否撰写正确?在这个登录档内查询看看. ...
- centos6.5下yum安装lnmp(适合刚入职的新手的方法)
新入职的员工,开始的时候都是让配环境,本地写代码用的wamp,在lnmp或lamp测试,除非有些土豪公司 用的是(果机). 另外安装时,把整个流程在脑子里先过一篇(记不全也没关系,一回生二回熟),重在 ...
- sublime搭建Java编译平台及编码问题
Sublime自带Java编译功能,当时只能编译不能运行,我们做一下小小的修改就可以让sublime一步完成编译运行的功能,实现sublime搭建Java编译平台. 使用Ctrl + B 编译时,所编 ...
- 详解Oracle临时表的几种用法及意义
Oracle临时表可以说是提高数据库处理性能的好方法,在没有必要存储时,只存储在Oracle临时表空间中.希望本文能对大家有所帮助. 1 .前言 Oracle Logo 目前所有使用 Oracle 作 ...