初始化
命令 |
作用 |
git init |
初始化仓库 |
git clone <远程仓库> |
克隆远程仓库 |
状态
命令 |
作用 |
git status |
显示当前工作目录状态 |
git log --oneline --decorate --graph --all |
查看提交日志 |
提交
命令 |
作用 |
git add -A |
把所有文件加入暂存进行跟踪 |
git commit |
提交所有暂存的文件 |
git commit -m <提交信息> |
同上 |
git commit --amend |
修改最后一次提交 |
git rebase -i HEAD~3 |
修改多个提交信息 |
拉取
命令 |
作用 |
git fetch |
拉取默认远程仓库的全部分支 |
git fetch <储存库> |
拉取指定远程仓库的全部分支 |
git fetch -p |
拉取远程仓库的全部分支,并清理本地过时的远程分支 |
合并
命令 |
作用 |
git rebase <分支名> |
合并分支,变基 |
git rebase -i HEAD~3 |
合并多个提交 |
推送
命令 |
作用 |
git push |
推送提交到远程仓库 |
git push <储存库> <本地分支名>:<远程分支名> |
推送本地分支,将其作为远程仓库的分支 |
git push -u |
推送提交到远程仓库,并在本地把当前分支与远程分支进行关联 |
分支
命令 |
作用 |
备注 |
git branch |
查看分支 |
|
git branch <分支名> |
创建分支 |
|
git branch -vv |
查看分支与跟踪状态 |
|
git branch -u [储存库]/[分支名] |
让已有的本地分支去跟踪已有的远程分支 |
|
git branch -b [储存库]/[分支名] |
创建并跟踪本地没有分支跟踪的远程分支 |
|
git branch -a |
列出远程分支和本地分支 |
|
git branch -d [分支名] |
删除指定分支 |
|
git checkout <分支名> |
切换到已有的分支 |
|
git checkout -b <分支名> |
创建并切换到新的分支 |
|
git switch <分支名> |
切换到已有的分支 |
2.27版本之后更新的专用于切换分支 |
git switch -c <分支名> |
创建并切换到新的分支 |
同上 |
git remote prune |
清理本地过时的远程分支 |
|
回退
| 命令 | 作用 | 备注 |
| --------------------------------- | ------------------------------------ | ------------------------------------ |
| git reset --hard HEAD~ | 舍弃所有变更,回退到前一次提交 | 波浪号后面可以指定数量,例如想回到前5次提交的位置,可以键入5 | |
| git reset --hard <提交哈希> | 舍弃所有变更,回退到指定提交 |
Pull requests
这个具体看代码管理平台,但是如果希望能维护出一个漂亮的commit历史记录,那在通过pr之后,一定要用rebase的方式合并pr
命令详解
这一节存在的意义是为了解读 Git 的文档,毕竟英文文档看起来还是没中文的顺畅
git rebase
这个命令中 <分支名> 并不是必须参数,当不指定 <分支名> 时,git 会把项目配置文件中的branch.<name>.remote
和branch.<name>.merge
中当作默认值来使用