查看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 <远程主机名> <远程分支名>:<本地分支名> |