git 指令速查表

git 指令速查表
引用项目:
awesome-cheatsheets


目录


1. 配置信息

git config --global "Your Name"
git config --global "Email Address"
git config --global credential.helper store    保存密码(每次要输密码/重复输密码)
git config --global color.ui true    显示颜色
git config [--global] alias.<alias> '<original command>'    为所有工作区/当前工作区配置别名
.git/config             当前工作区的配置文件
~/.gitconfig            当前用户的配置文件

2. 初始化项目

git init

3. 提交修改

git add <file>
git add -u 提交work directory中所有已track的文件至staging area
git commit -m "descriptions"
git commit --amend 对最近一次的提交做内容修改
git commit --amend --author "user_name <user_email>" 修改最近提交用户名和邮箱

4. 查看状态、比对

git status
git status -s 文件状态缩略信息, 常见 A:新增; M:文件变更; ?:未track; D:删除
git diff <file>
git diff HEAD -- <file>                 查看工作区和版本库里面最新版本的区别
git diff --check <file>                 检查是否有空白错误(regex:' \{1,\}$')
git diff --cached <file>                查看已add的内容(绿M)
git diff branch1 branch2 --stat         查看两个分支差异
git diff branch1 branch2 <file...>      查看分支文件具体差异

5. 查看历史版本、历史操作

git log
git reflog
git log -n                  最近n条的提交历史
git log <branch_name> -n    分支branch_name最近n条的提交历史
git log --stat              历次commit的文件变化
git log --shortstat         对比--stat只显示最后的总文件和行数变化统计(n file changed, n insertions(+), n deletion(-))
git log --name-status       显示新增、修改、删除的文件清单
git log lhs_hash..rhs_hash  对比两次commit的变化(增删的主语为lhs, 如git log HEAD~2..HEAD == git log HEAD -3)
git log -p                  历次commit的内容增删
git log -p -W               历次commit的内容增删, 同时显示变更内容的上下文
git log origin/EI-1024 -1 --stat -p -W 查看远端分支EI-1024前一次修改的详细内容
git log origin/master..dev --stat -p -W 查看本地dev分支比远端master分支变化(修改)的详细内容

git log <branch_name> --oneline   对提交历史单行排列
git log <branch_name> --graph     对提交历史图形化排列
git log <branch_name> --decorate  对提交历史关联相关引用, 如tag, 本地远程分支等
git log <branch_name> --oneline --graph --decorate 拼接一下, 树形化显示历史
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen%ai(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit 同上, 建议alais保存

#######################################################
git log --pretty=format 常用的选项(摘自progit_v2.1.9)
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
##########################################################

git log --since --after     显示时间之后的提交
git log --until --before    显示时间之前的提交
git --author                显示指定作者的提交
git --committer             显示指定committer的提交(注:committer不一定是author)
git log -S [keyword]        仅显示添加或移除了某个关键字的提交(某些场景比单独git log -p | grep [keyword] 好用很多)
git log origin/b3.3/master --author=yx-ren --since="2019-10-01" --before="2019-11-01" 查看某作者在某发布版本最近一个月的提交, 常见于线上背锅
git log origin/b3.0/master --author=some_leave --since="1 month ago" 查看某刚离职同事过去一个月的提交, 常见于背锅
git log --since=1.weeks     过去一周的提交(写周报的时候可以看看我这一周干了啥)
git log --since=1.days      过去一天的提交(下班的时候可以看看我这一天干了啥)
git log --since="1 weeks 2 days 3 hours 40 minutes 50 seconds ago" 过去1周2天3小时40分50秒之内的提交

6. 版本回退、前进

git reset --hard HEAD^      回退到上1版本
git reset --hard HEAD~5     回退到上5个版本
git reset --hard id         回退到指定版本

7. 撤销修改

git checkout -- <file>      撤销修改:误修改工作区文件,未git add/commit
git restore <file>          撤销修改:误修改工作区文件,未git add/commit
git reset HEAD <file>       撤销git add:误将文件加入暂存区(git add),未git commit
git reset --hard HEAD^      撤销git commit:误将文件提交(一旦提交,只能通过版本回退进行撤销)

8. 删除与恢复

git rm/add <file>
git commit -m "remove <file>"   删除版本库中的<file>:删除工作区文件后,继续删除版本库中相应的文件
git checkout -- <file>          根据版本库中的<file>恢复工作区<file>
git restore <file>              对于 checkout -- <file> 的新写法 (2.23 引入)

9. 清理工作区未track也未ignore的文件或文件夹(如各种临时.swp, .patch文件等)

git clean -i    #交互式清理, 不常用
git clean -n    #查看清理文件列表(不包括文件夹), 不执行实际清理动作
git clean -n -d #查看清理文件列表(包括文件夹), 不执行实际清理动作
git clean -f    #清理所有未track文件
git clean -df   #清理所有未track文件和文件夹, 常用, 但使用前确保新增加的文件或文件夹已add, 否则新创建的文件或者文件夹也会被强制删除

10. 关联GitHub远程仓库(本地到远程)

git remote add origin <remote address>    在本地工作区目录下按照 GitHub 提示进行关联
git remote rm origin                      解除错误关联
git push -u origin master                 第一次将本地仓库推送至远程仓库(每次在本地提交后进行操作)
git push origin master                    以后每次将本地仓库推送至远程仓库(每次在本地提交后进行操作)

11. 分支管理:创建、切换、查看、合并、删除

git branch <branch name>            创建<branch name>分支
git checkout <branch name>          切换至<branch name>分支
git switch <branch name>            切换至<branch name>分支 (2.23 引入)
git checkout -b <branch name>       创建并切换至<branch name>分支
git switch -c <branch name>         创建并切换至<branch name>分支
git branch                          查看已有分支(* 表示当前分支)
git merge <branch name>             合并<branch name>到当前分支(通常在master分支下操作)
git merge --no-commit <branch name> 合并<branch name>到当前分支,但不提交
git branch -d <branch name>         删除分支
git branch -m oldbranchname newname 重命名分支

12. Bug分支管理

git stash                   保存当前工作现场(在dev未完成开发,但master有bug需要修复)
git stash pop               回到dev分支后恢复工作现场(list中的现场会同时被删除)
git stash list              查看当前存储的工作现场
git stash apply stash@{#}   回到指定工作现场(list中的现场不会被删除,需要用git stash drop)
git stash drop stash@{#}    删除指定工作现场
git cherry-pick <id>        在master修复好bug后,在dev复制一遍bug修复流程

13. 标签管理

git tag                                                     查看标签
git show <tag name>                                         查看指定标签
git log --pretty=oneline --abbrev-commit --decorate=full    在log中显示标签
git tag <tag name>                                          为上次commit位置打标签
git tag <tag name> <commit id>                              为指定commit位置打标签
git tag -a <tag name> -m "descriptions" <commit id>         为指定commit打标并添加描述
git tag -d <tag name>                                       删除本地标签
git push origin <tag name>                                  推送指定标签到远程
git push origin --tags                                      推送所有本地标签到远程
git push origin :refs/tags/<tag name>                       删除远程标签(先删除本地标签)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值