在实际使用 Git 进行开发的过程中,比较常用的一些指令笔记
基本概念
| 英文 | 中文 |
|---|---|
working tree | 工作区 |
stage/index | 暂存区 |
origin | 远程、源 |
tag | 标签 |
mainline | 主线 |
git-commit
Record changes to the repository
向仓库提交改动
| 命令 | 描述 |
|---|---|
-n, --no-verify | 该选项可以避免执行 pre-commit 和 commit-msg 钩子 |
git-tag
Create, list, delete or verify a tag object signed with GPG
创建,列举或者删除标签
| 命令 | 描述 |
|---|---|
git tag -a [tagname] -m [msg] | 创建标签并添加信息 |
git tag -l | 列表本地标签 |
git tag -d [tagname] | 删除本地标签 |
git push --tags | 向远程推送所有本地标签 |
git push origin :refs/tags/[tagname] | 删除远程标签 |
git-stash
Stash the changes in a dirty working directory away
把工作空间中所有暂存和非暂存的改动隐藏起来
| 命令 | 描述 |
|---|---|
git stash | 快速隐藏 |
git stash push [-m <message>] [--] [<pathspec>…] | 添加备注并指定路径 |
git stash list | 以列表的形式展示 |
git stash pop [<stash>] | 把栈顶的改动应用到本地,并删除栈顶 |
git stash apply [<stash>] | 把栈顶的改动应用到本地 |
git stash clear | 删除远程标签 |
git-clean
Remove untracked files from the working tree
从工作区中删除未跟踪的文件
| 命令 | 描述 |
|---|---|
git clean [-d] [-f] | 删除指令 |
-d | 递归地删除目录和目录下包含的所有目录和文件 |
-f, --force | 如果不添加该选项,git clean会没有删除文件和目录的权限 |
git-revert
Revert some existing commits
撤销已经存在的提交
通过创建新的提交,去撤销已经存在的提交
| 命令 | 描述 |
|---|---|
git revert [commit] | 撤销一个已经存在的提交 |
-n, --no-commit | 不创建新的提交,直接把撤销后的代码添加到工作区和暂存区 |
git revert [start-commit]..[end-commit]
撤销指定区间的提交,前开后闭,不包括[start-commit],包括[end-commit]
git revert -m 1 [merge-commit]
--mainline parent-number
通过指定主线撤销合并,parent-number 以 1 开始,通过git show [merge-commit]查看