| 查看Git版本 | --version |
| 帮助 | --help |
| 克隆仓库到一个新目录 | clone <地址> |
| 创建一个空的 Git 仓库或重新初始化一个已存在的仓库 | init(创建./.git目录) |
| 添加文件内容至索引 | add <文件>[ 文件,...]文件不存在会fatal出错 |
| 从工作区和索引中删除文件 | rm [-f|--cached] <文件>,-f会直接删除本地文件,--cached只是从索引中删除 |
| 显示工作区状态 | status,显示那些文件被更改或删除等等 |
| 移动或重命名一个文件、目录或软连接 | mv [-f] <源文件> <目标文件>,把源文件移动到目标文件,-f表示force强制移动 |
| 恢复工作区文件 | restore [--staged] <文件>,从索引中撤出文件,若没加--staged则撤出后文件会变成这个文件加入索引中时的样子(新的更改会丢失) |
| 显示各种类型的对象 | show [options] [<object>…]? |
| 显示提交日志 | log |
| 显示差异 | diff,显示当前与索引有什么不同 |
| 输出和模式匹配的行 | grep |
| 通过二分查找定位引入 bug 的提交 | bisect |
| 提交到本地仓库 | commit [<文件>,...] [-a] [-m <描述文本>],要是不写-m和描述就会强制写,不写不准提交按Ctrl+C然后N退出;文件不写默认索引的全部文件,索引一片空白可以加-a提交所有 |
| 创建分支 | branch [分支名],不写分支名就是列出所有分支 |
| 列出分支 | branch [分支名] --list,必须写--list否则就成创建了 |
| 删除分支 | branch -d <分支名> |
| 切换分支 | switch <分支名>,切换完了会出“切换到分支 ‘某某某’” |
| 创建标签 | tag <tag名> |
| 合并分支 | merge <分支名>,会把另一个分支合并到当前分支;冲突会导致合并失败并在文件中留下<<<<<<< HEAD、=======、>>>>>>>这样的字样,将冲突的文件进行必要的修改后add提交后合并冲突解决完成 |
| 退出合并 | merge --abort,不想解决冲突干脆不合并了 |
| 撤销合并 | reset --hard HEAD~,其中--hard参数撤销工作区中所有未提交的修改内容 |
| 重置当前 HEAD 到指定状态 | reset [--soft|--mixed|--hard] [HEAD]默认为--mixed |
| 变基 | rebase <分支名>,即“变基”操作,也需要解决冲突,但是可能不是当前版本 |
| 提交变基 | rebase --continue |
| 取消变基 | rebase --quit |
| 推送 | git push [远程主机名],初次推送要远程主机名origin |
| 从另外一个仓库下载对象和引用 | fetch |
| 推送到远端 | push |
| 从远程获取代码合并本地 | pull <远程主机名> <远程分支名>:<本地分支名> |