| GIT | |
|---|---|
| master | 默认开发分支 |
| origin | 默认远程版本库 |
| Head | 默认开发分支 |
| Head^ | Head的父提交 |
创建版本库
| 创建版本库 | |
|---|---|
| git clone | 克隆远程版本库 |
| git init | 初始化本地版本库 |
修改和提交
| 修改和提交 | |
|---|---|
| git status | 查看状态 |
| git diff | 查看变更内容 |
| git add . | 跟踪所有改动过的文件 |
| git add | 跟踪指定的文件 |
| git mv | 文件改名 |
| git rm | 删除文件 |
| git rm --cached | 停止跟踪文件但不删除 |
| git commit -m "message" | 提交所有更新过的文件 |
| git commit --amend | 修改最后一次提交 |
查看提交历史
| 查看提交历史 | |
|---|---|
| git log | 查看提交历史 |
| git log | 查看指定分支提交历史 |
| git log -p | 查看指定文件的提交历史 |
| git blame | 以列表方式查看指定文件 |
| git log - | 查看最近N条提交历史 |
| git log --name-status | 查看提交历史和提交的文件 |
| git log --pretty=oneline | hash、备注一行显示 |
| git log --oneline | hash、备注一行显示 |
| git log --pretty=short | hash、tag、作者、备注 |
撤销
| 撤销 | |
|---|---|
| git reset --hard HEAD | 撤销工作目录中所有未提交文件的修改内容 |
| git checkout HEAD | 撤销指定的未提交文件的修改内容 |
| git revert - | 撤销指定的提交 |
| git clean -f | 删除untracked files |
| git clean -fd | 连untracked的目录也一起删掉 |
| git clean -xfd | 连gitignore的untracked文件/目录也一起删掉(慎用) |
| git clean -nf | 查看将会删除哪些文件,另外两条命令同理 |
分支
| 分支 | |
|---|---|
| git branch | 显示所有本地分支 |
| git branch -a | 显示所有本地和远程分支 |
| git branch -v | 查看分支最后一次提交 |
| git branch | 创建新分支 |
| git checkout | 切换到指定分支或标签 |
| git branch -b | 新建+切换到指定分支 |
| git push | 推送本地分支到远程仓库 |
| git checkout -b | 拉取远程指定分支到本地 |
| git branch -d | 删除本地分支 |
| git push origin --delete | 删除远程分支 |
标签
| 标签 | |
|---|---|
| git tag | 列出所有本地标签 |
| git tag | 基于最新提交创建标签 |
| git tag | 在某个commit上打标签 |
| git push origin | 本地tag推送到origin线上 |
| git tag -d | 删除标签 |
| git push origin :refs/tags/ | 删除本地标签后删除线上标签 |
合并与衍合
| 合并与衍合 | |
|---|---|
| git merge | 合并指定分支到当前分支 |
| git rebase <branch/tag> | 衍合指定分支到当前分支 |
| git branch --merged | 查看哪些分支已经合并到当前分支 |
| git branch --no-merged | 查看哪些分支没合并到当前分支 |
远程操作
| 远程操作 | |
|---|---|
| git remote -v | 查看远程版本库信息 |
| git remote -show | 查看远程指定版本库信息 |
| git ls-remote | 查看远程分支和标签信息 |
| git remote add | 添加远程版本库 |
| git checkout -b origin/ | 拉取远程指定分支到本地 |
| git fetch | 从远程库获取代码 |
| git pull | 下载代码及快速合并 |
| git push | 上传代码及快速合并 |
| git remote rm | 删除远程仓库 |
| git push :<branch/tag-name> | 删除远程标签 |
| git push --tags | 上传所有标签 |