git常用命令大全
设置与配置
config和help,获取与创建项目,快照基础,分支与合并,分享与更新项目,检查与比较,调试,补丁,邮件,外部系统,管理.
命令 | 作用意思等 |
|---|---|
git config | 用来配置, |
git help | 用来显示命令文档, |
git init | 新建 |
git clone | 复合命令,建目录+git init+git remote add(远端,origin)+git fetch+git checkout,--bare创建空仓,--recursive递归. |
git add | 暂存,提交时,只检查暂存区, |
git status | 展示工作区及暂存区中文件的不同状态.会显示如何在这些暂存区移动的提示. |
git diff | 比较树差异时用.git diff --staged暂存与提交差异,两提交git diff 主 分支的差异.有--check选项,A...B三点差异,-b过滤空白,比较--theirs,--ours 和 --base三方.--submodule比较子模块. |
git difftool | 外部工具比较树 |
git commit | 提交,用-a跳过暂存,-m用命令行而不是编辑器.用--amend来重做,-S为签名加密. |
git reset | 撤销,用--hard(危险,有覆盖)改变工作区,移动HEAD,可选改变暂存,git merge --abort是其简单封装. |
git rm | 从工作区/暂存区移除文件,--cached只移除暂存区.有--ignore-unmatch等选项. |
git mv | 新文件git add,旧文件git rm,类似重命名. |
git clean | 从工作区中移除不想要文件的命令 |
git branch | 管理分支,可列出所有,创建新,删除及重命名分支.-u设置跟踪分支. |
git checkout | 切换分支,用--track来跟踪,用--conflict=diff3来比较冲突. |
git merge | 合并分支,用squashed merge合并多个而只提交1个,而不记录合并的分支的历史.-Xignore-space-change命令及--abort,合并前验证签名,及合并子树. |
git mergetool | 外部合并工具 |
git log | 项目可达历史记录,默认显示当前.但可显示不同甚至多个头记录或分支来遍历.-p和--stat了解每一提交的变更,用--pretty和--online来简洁查看.--decorate可视化分支指针,--graph查看分支历史记录.A..B查看B有而A无的提交.A...B及--left-right选项.用--merge帮助合并冲突,用--cc查看历史合并提交冲突,用-g查看引用日志,用-S及-L优雅搜索函数历史.--show-signature判断签名是否合法. |
git stash | 隐藏, |
git tag | 打标签,用于发布.-s创建GPG签名标签.-v来验证. |
git fetch | 取到仓库,设置refspec引用规范. |
git pull | git fetch+git merge,可处理变基.用--verify-signatures验证gpg签名. |
git push | 推送,计算差异,推送至远端.通常要写/验证.用--delete删除远端分支.--tags分享标签,用--recurse-submodules检查是否都已推送.用pre-push检查是否允许推送.完整refspec(引用规范). |
git remote | 管理远端仓库记录工具.允许网径映射为origin(等),可用来添加,修改,及删除它们.一般这样git remote add <名> <网径>用. |
git archive | 创建归档文件. |
git submodule | 管理外部仓库,子命令:add,update,sync来管理. |
git show | 可读方式显示吉对象,显示标签或提交.有意思在:合并冲突时提取不同暂存区指定文件内容. |
git shortlog | 归纳git log输出命令,展示根据作者分组的提交记录的概括性信息而不是列出所有提交. |
git describe | 取可解析为提交的,生成不变串.取提交的清晰描述,而非不可读的sha1值. |
git bisect | 二分查找有问题提交, |
git blame | 标注文件行最后变更的作者/提交. |
git grep | 查找串/正则式. |
git cherry-pick | 取单提交中引入的变更,只分支提交中仅取部分提交时有用. |
git rebase | 变基,自动化的cherry-pick命令.--onto在之上变基.-i用于交互式脚本.注意合并冲突. |
git revert | 反向git cherry-pick,撤销或逆转(恢复). |
git apply | 应用git diff打的补丁. |
git am | 邮箱,mbox格式,有--resolved,-i及-3等选项. |
git format-patch | 格式化补丁, |
git imap-send | git format-patch生成邮箱上传至imap草稿文件夹. |
git send-email | 发送git format-patch生成补丁. |
git request-pull | 生成示例, |
git svn | 与svn集成. |
git fast-import | 转换格式为吉格式 |
git gc | 删除不需要文件,或打包小包为大包. |
git fsck | 检查仓库问题, |
git reflog | 分析头针日志来查找重写历史上可能丢失的提交 |
git filter-branch | 根据规则来重写大量的提交,过滤子目录.有--commit-filter,--subdirectory-filter及--tree-filter选项. |
还有些底层命令,如ls-remote查看远端原始引用,ls-files查看暂存区,rev-parse接受串转为sha1值.
浙公网安备 33010602011771号