cheat-sheets
cheat-sheets copied to clipboard
Git Cheat Sheet
查看卡片式效果目录
初始化仓库
- 初始化仓库
- 初始化裸仓库
- 克隆仓库
配置
- 编辑配置文件
- 列出配置信息
- 获取相应的配置
- 配置用户邮箱
- 配置用户名
- 输出彩色信息
- 设置文件名大小写敏感
- 设置推送策略为 simple
- 设置 git 的编辑器是 vim
- 设置命令别名
忽略文件
- 添加本项目的忽略文件
- 添加本项目的忽略文件并不把此文件纳入版本管理
- 设置全局忽略文件
- 对已加入版本管理的文件不做更改检查
- 对已加入版本管理的文件做更改检查
添加删除移动文件
- 添加所有文件到暂存区,包括未追踪文件
- 更新暂存区文件
- 交互式添加文件到暂存区
- 工作区与暂存区删除文件
- 仅暂存区删除文件
- 重命名暂存区文件
工作区状态
- 查看工作区的信息
- 查看工作区信息并显示分支及追踪信息
- 并查看忽略文件的信息
- 列出忽略文件
显示更改
- 显示工作区与暂存区的不同
- 显示暂存区与本地仓库的不同
- 显示工作区,暂存区与本地仓库的不同
- 仅显示改变的文件
- 比较两次提交的差异
- 显示某次 commit 所做的更改
列出文件信息
- 列出暂存区文件
- 列出忽略文件与未追踪文件
- 子目录中显示所在位置
储藏与恢复
- 储藏(stash)工作区相对暂存区更改的文件
- 储藏文件并添加描述信息
- 恢复最后一次储藏的文件
- 恢复最后一次储藏的文件并删除此次储存记录
- 查看储藏列表
恢复工作区
- 重置工作区某文件
- 重置工作区
- 列出将要清除的未追踪文件
- 清除未追踪文件
- 清除忽略文件
- 清除未追踪目录及文件
回退版本
- 重置暂存区
- 重置工作区和暂存区
- 恢复本分支到某次提交,重置工作区与暂存区
- 恢复本分支到某次提交
- 恢复本分支到某次提交,重置暂存区
- 反向恢复一个提交并生成新的提交
分支
- 列出本地分支
- 列出本地分支与追踪关系
- 列出远程分支
- 列出所有分支
- 建立分支不切换工作区
- 删除已被合并的分支
- 强制删除未被合并的分支
- 更改分支名字
- 设置追踪分支
切换分支
- 切换分支
- 建立分支并切换工作区
- 切换到最近一次分支
- 建立无任何提交历史的分支
合并分支
- 合并 develop 分支到本分支
- 强制合并分支后生成 merge commit
- 合并最近切换分支
- 变基合并 develop 分支
- 变基进入交互式界面
远程仓库
- 添加远程仓库并命名为 origin
- 修改远程仓库的地址
- 列出所有的远程仓库
- 列出远程仓库 origin 的详细信息
推送与拉取
- git config push.default simple
- 推送 master 到远程仓库
- 推送到远程仓库并建立追踪关系
- 推送时忽略 pre-push hook
- 从远程仓库拉取文件
- 设置 rebase 模式拉取代码
提交
- 提交
- 追加提交重置提交信息
- 重置作者
- 允许空提交
- 提交时跳过 pre-commit hook
日志
- 显示提交日志
- 显示某文件的提交日志
- 以图表形式显示提交日志
- 显示每次提交的对象信息
- 显示某个时间段的提交信息
- 显示指定作者的提交信息
- 根据提交信息中的关键字查找
- 根据提交源码中的关键字查找
- 列出二者特有的提交
- 列出 branch 有而 branch2 没有的提交
- 仅显示 merge commit
- 统计每个作者的提交情况
- 统计每个作者的提交个数
标签
- 列出所有标签并显示标签信息
- 添加一个标签
- 在某个 commit 上添加一个标签
- 删除一个标签
- 查看某个标签信息
- 推送所有标签到远程仓库
- 使用最近的标签描述本次提交
追责(甩锅)
- 找到最后一次提交的作者
- 找到具体某一段的最后一次提交
- 查找文件的修改历史及明细
确认坏的提交
- 二分查找坏的提交
git 对象
- 获取改摘要信息的类型
- 获取改摘要信息的内容
查找
- 在已追踪文件中查找关键字并指明行号
打包
- 打包
初始化仓库
初始化仓库
``` sh git init ```初始化裸仓库
``` sh git init --bare ```克隆仓库
``` sh git clone配置
编辑配置文件
``` sh git config [--global] -e ```列出配置信息
``` sh git config -l ```获取相应的配置
``` sh git config --get core.editor ```配置用户邮箱
``` sh git config --global user.email配置用户名
``` sh git config --global user.name输出彩色信息
``` sh git config color.ui true ```设置文件名大小写敏感
``` sh git config core.ignoreCase false ```设置推送策略为 simple
``` sh git config push.default simple ```设置 git 的编辑器是 vim
``` sh git config --global core.editor vim ```设置命令别名
``` sh git config --global alias.co checkout ```忽略文件
添加本项目的忽略文件
``` sh vim .gitignore ```添加本项目的忽略文件并不把此文件纳入版本管理
``` sh vim .git/info/exclude ```设置全局忽略文件
``` sh git config --global core.excludesfile ~/.gitignore ```对已加入版本管理的文件不做更改检查
``` sh git update-index --assume-unchanged对已加入版本管理的文件做更改检查
``` sh git update-index --no-assume-unchanged添加删除移动文件
添加所有文件到暂存区,包括未追踪文件
``` sh git add -A ```更新暂存区文件
``` sh git add -u ```交互式添加文件到暂存区
``` sh git add -p ```工作区与暂存区删除文件
``` sh git rm仅暂存区删除文件
``` sh git rm --cached重命名暂存区文件
``` sh git mv工作区状态
查看工作区的信息
``` sh git status ```查看工作区信息并显示分支及追踪信息
``` sh git status -sb ```并查看忽略文件的信息
``` sh git status --ignored ```列出忽略文件
``` sh git check-ignore * ```显示更改
显示工作区与暂存区的不同
``` sh git diff ```显示暂存区与本地仓库的不同
``` sh git diff --cached ```显示工作区,暂存区与本地仓库的不同
``` sh git diff HEAD ```仅显示改变的文件
``` sh git diff --name-only ```比较两次提交的差异
``` sh git diff显示某次 commit 所做的更改
``` sh git show列出文件信息
列出暂存区文件
``` sh git ls-files ```列出忽略文件与未追踪文件
``` sh git ls-files -o ```子目录中显示所在位置
``` sh git ls-files --full-name ```储藏与恢复
储藏(stash)工作区相对暂存区更改的文件
``` sh git stash ```储藏文件并添加描述信息
``` sh git stash save恢复最后一次储藏的文件
``` sh git stash apply ```恢复最后一次储藏的文件并删除此次储存记录
``` sh git stash pop ```查看储藏列表
``` sh git stash list ```恢复工作区
重置工作区某文件
``` sh git checkout --重置工作区
``` sh git checkout . ```列出将要清除的未追踪文件
``` sh git clean -n ```清除未追踪文件
``` sh git clean -f ```清除忽略文件
``` sh git clean -Xf ```清除未追踪目录及文件
``` sh git clean -df ```回退版本
重置暂存区
``` sh git reset ```重置工作区和暂存区
``` sh git reset --hard ```恢复本分支到某次提交,重置工作区与暂存区
``` sh git reset --hard恢复本分支到某次提交
``` sh git reset --soft恢复本分支到某次提交,重置暂存区
``` sh git reset --mixed反向恢复一个提交并生成新的提交
``` sh git revert分支
列出本地分支
``` sh git branch ```列出本地分支与追踪关系
``` sh git branch -vv ```列出远程分支
``` sh git branch -r ```列出所有分支
``` sh git branch -a ```建立分支不切换工作区
``` sh git branch删除已被合并的分支
``` sh git branch -d强制删除未被合并的分支
``` sh git branch -D更改分支名字
``` sh git branch -m设置追踪分支
``` sh git branch -u切换分支
切换分支
``` sh git checkout建立分支并切换工作区
``` sh git checkout -b切换到最近一次分支
``` sh git checkout - ```建立无任何提交历史的分支
``` sh git checkout --orphan合并分支
合并 develop 分支到本分支
``` sh git merge develop ```强制合并分支后生成 merge commit
``` sh git merge -no-ff develop ```合并最近切换分支
``` sh git merge - ```变基合并 develop 分支
``` sh git rebase develop ```变基进入交互式界面
``` sh git rebase -i ```远程仓库
添加远程仓库并命名为 origin
``` sh git remote add origin修改远程仓库的地址
``` sh git remote set-url origin列出所有的远程仓库
``` sh git remote -v ```列出远程仓库 origin 的详细信息
``` sh git remote show origin ```推送与拉取
git config push.default simple
``` sh 设置默认推送策略为 simple ```推送 master 到远程仓库
``` sh git push origin master ```推送到远程仓库并建立追踪关系
``` sh git push -u origin master ```推送时忽略 pre-push hook
``` sh git push -n ```从远程仓库拉取文件
``` sh git pull origin master ```设置 rebase 模式拉取代码
``` sh git pull --rebase origin master ```提交
提交
``` sh git commit -m追加提交重置提交信息
``` sh git commit --amend -m重置作者
``` sh git commit --amend --author=允许空提交
``` sh git commit --allow-empty ```提交时跳过 pre-commit hook
``` sh git commit -n ```日志
显示提交日志
``` sh git log ```显示某文件的提交日志
``` sh git log -p以图表形式显示提交日志
``` sh git log --graph --all --oneline --decorate ```显示每次提交的对象信息
``` sh git log --pretty=raw ```显示某个时间段的提交信息
``` sh git log --since '2 days ago' ```显示指定作者的提交信息
``` sh git log --author=根据提交信息中的关键字查找
``` sh git log --grep=根据提交源码中的关键字查找
``` sh git log -S列出二者特有的提交
``` sh git log master...develop ```列出 branch 有而 branch2 没有的提交
``` sh git log branch2..branch ```仅显示 merge commit
``` sh git log --merges ```统计每个作者的提交情况
``` sh git shortlog ```统计每个作者的提交个数
``` sh git shortlog -sn ```标签
列出所有标签并显示标签信息
``` sh git tag -ln ```添加一个标签
``` sh git tag -a v1.0.0 -m在某个 commit 上添加一个标签
``` sh git tag v0.9.0删除一个标签
``` sh git tag -d v1.0.0 ```查看某个标签信息
``` sh git show v1.0.0 ```推送所有标签到远程仓库
``` sh git push --tags ```使用最近的标签描述本次提交
``` sh git describe ```追责(甩锅)
找到最后一次提交的作者
``` sh git blame找到具体某一段的最后一次提交
``` sh git blame -L 10,18查找文件的修改历史及明细
``` sh git log -p确认坏的提交
二分查找坏的提交
``` sh git bisect startgit checkout HEAD~20
git bisect good
git bisect bad
git bisect reset ```