初始化
命令 | 作用 |
---|---|
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
中当作默认值来使用