天天看点

git 命令字典

初始化

命令 作用
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 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

中当作默认值来使用