文章来自:http://segmentfault.com/a/1190000021643071
作者:yuanchuang

点击加入:PHP自学中心交流③群

商务合作: 请加微信(QQ):2230304070

视频教程推荐

请知悉:有http://blog.startphp.cn 链接的已经更改为 http://www.mano100.cn

1 用PHP如何开发出一个亿级架构,高性能的网站呢

2 websocket搭建聊天室,从哪里入手?

3 Python视频教程从入门到进阶与实战学习【96集】

4 请熟记Go语言的这些基本语法与使用【附视频教程】

5 Restful接口开发实战教程(18集)

更多视频教程,请关注网站http://www.mano100.cn

精选文章正文

如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 git commitgit pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法。


导航 —— 跳到之前的分支

git checkout -

查看历史

# 每个提交在一行内显示git log --oneline

# 在所有提交日志中搜索包含「homepage」的提交git log --all --grep='homepage'

# 获取某人的提交日志git log --author="Maxence"

哎呀:之前重置了一个不想保留的提交,但是现在又想要回滚?

# 获取所有操作历史git reflog

# 重置到相应提交git reset HEAD@{4}# ……或者……git reset --hard 

哎哟:我把本地仓库搞得一团糟,应该怎么清理?

git fetch origingit checkout mastergit reset --hard origin/master

查看我的分支和 master 的不同

git diff master..my-branch

定制提交

# 编辑上次提交git commit --amend -m "更好的提交日志"

# 在上次提交中附加一些内容,保持提交日志不变git add . && git commit --amend --no-edit

# 空提交 —— 可以用来重新触发 CI 构建git commit --allow-empty -m "chore: re-trigger build"

squash 提交

比方说我想要 rebase 最近 3 个提交:

- git rebase -i HEAD~3
- 保留第一行的 pick,剩余提交替换为 squash 或 s
- 清理提交日志并保存(vi 编辑器中键入 :wq 即可保存)

pick 64d26a1 feat: add index.jss 45f0259 fix: update index.jss 8b15b0a fix: typo in index.js

修正

比方说想在提交 fed14a4c 加上一些内容。

git 提交分支

git add .git commit --fixup HEAD~1# 或者也可以用提交的哈希值(fed14a4c)替换 HEAD~1

git rebase -i HEAD~3 --autosquash# 保存并退出文件(VI 中输入 `:wq`)

rebase 的时候在每个提交上执行命令

如果特性很多,一个分支里可能有多个提交。如果测试失败了,你希望能找到导致测试失败的提交。这时候你可以使用 rebase --exec 命令在每个提交上执行命令。

# 在最近 3 个提交上运行 `npm test` 命令git rebase HEAD~3 --exec "npm test"

暂存

暂存不止是 git stash 和 git stash pop ;)

# 保存所有正在追踪的文件git stash save "日志信息"

# 列出所有的暂存项git stash list

# 获取并删除暂存项git stash apply stash@{1}git stash drop stash@{1}# ……或使用一条命令……git stash pop stash@{1}

清理

# 移除远程仓库上不存在的分支git fetch -p

# 移除所有包含 `greenkeeper` 的分支git fetch -p && git branch --remote | fgrep greenkeeper | sed 's/^.\{9\}//' | xargs git push origin --delete

GitHub = Git + Hub

我把 Hub 当成 git 的一个封装来用。你如果也想这么做,可以设置一个别名:alias git='hub'

# 打开浏览器访问仓库 url(仅限 GitHub 仓库)git browse

额外福利:我最喜爱的 git 别名

alias g='git'alias glog='git log --oneline --decorate --graph'alias gst='git status'alias gp='git push'alias ga='git add'alias gc='git commit -v'

# ?alias yolo='git push --force'

# 每周站会汇报工作时用git-standup() {    AUTHOR=${AUTHOR:="`git config user.name`"}

    since=yesterdayif [[ $(date +%u) == 1 ]] ; then        since="2 days ago"fi

    git log --all --since "$since" --oneline --author="$AUTHOR"}

以上是本文的全部内容,希望对大家的学习有帮助,也希望大家多多支持 php自学中心 ,学习与交流少不了一个圈子,点击加技术群:PHP自学中心交流③群

amend用法 git 信息_Git 高级用法,你用过哪些了相关推荐

  1. java return用法_Java枚举的高级用法之多键值的映射使用

    枚举Enum单映射使用 做Java的各位仁兄姐妹都知道,Java通过HashMap,以及枚举提供了方便的K-V映射功能,例如 枚举单映射使用 但是如果遇到多个键值映射,例如K-K-V的形式怎么办呢?可 ...

  2. sql not exists用法_SQL Server 2012 高级用法(一)

    最近用到了SQL Server 相关数据库等问题,于是整理了如下SQL Server高级用法系列. 该系列不再介绍基础用法(select ,insert, update, delete, and or ...

  3. linux+tar高级用法,Linux tar命令高级用法——备份数据

    Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件.现在我们可以使用tar来备份 ...

  4. python字典高级用法_Python 字典的高级用法

    一. collections 中 defaultdict 的使用 1.一个字典映射多个值: 待处理字典: l = [('a',2),('b',3),('a',1),('b',4),('a',3),(' ...

  5. foreach用法_25个你不得不知道的数组reduce高级用法

    作者:JowayYoung 仓库:Github.CodePen 博客:掘金.思否.知乎.简书.头条.CSDN 公众号:IQ前端 联系我:关注公众号后有我的微信哟 特别声明:原创不易,未经授权不得对此文 ...

  6. (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

    版权声明:本文出自郭霖的博客,转载必须注明出处. 目录(?)[-] ValueAnimator的高级用法 ObjectAnimator的高级用法 转载请注明出处:http://blog.csdn.ne ...

  7. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...

    大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...

  8. es6中reduce的用法_25个你不得不知道的数组reduce高级用法

    背景 距离上一篇技术文章<1.5万字概括ES6全部特性>发布到现在,已经有整整4个月没有输出过一篇技术文章了.哈哈,不是不想写,而是实在太忙,这段时间每天不是上班就是加班,完全没有自己的时 ...

  9. JS数组reduce的25个高级用法

    reduce作为ES5新增的常规数组方法之一,对比forEach .filter和map,在实际使用上好像有些被忽略,下面这篇文章主要给大家介绍了关于JS数组reduce你不得不知道的25个高级用法, ...

最新文章

  1. sharding jdbc sql路由日志
  2. # 异运算_小学六年级数学知识点总结-03分数的混合运算
  3. sql注入及mybatis防止sql注入
  4. clion opencv安装_Clion+Opencv3.2终极配置教程
  5. 关于spring boot集成MQTT的一写新人问题
  6. 手机python利器能做什么_推荐一款开发利器!既能写Python,又能写Java
  7. VTK:相互作用之ImageRegion
  8. python处理进度条
  9. 了解git的命令行使用
  10. iOS开发之oc(五)--成员变量(实例变量)
  11. ansible笔记(8):常用模块之系统类模块(二)
  12. stl_algorithm算法之排序算法
  13. iPhone模拟器部分操作
  14. java浏览器插件开发,如何获取Windows的IcedTea浏览器插件(OpenJDK浏览器Java插件)?
  15. 使用ORC识别图片的文字
  16. succi - 接小球游戏
  17. 功能测试数据测试之错误推测方法
  18. Linux查看CPU型号、物理CPU个数、核数、逻辑CPU个数
  19. npm修改全局安装默认路径(C:\Users\Administrator\AppData\Roaming\npm\node_modules)
  20. 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...

热门文章

  1. 也谈虚拟化的服务器选型,以及性能考虑
  2. 深度链接对社会化营销有哪些价值和作用?
  3. 在maven 2工程中加入iTextAsian支持(maven添加自定义jar包到本地仓库)
  4. @ManyToOne和@OneToMany 注解
  5. C语言open()函数:打开文件函数(转)
  6. 软考信息系统项目管理师_管理科学(运筹学)2---软考高级之信息系统项目管理师034
  7. 页面间参数传递---基于Vue的uniapp手机端_前端UI_uview工作笔记005
  8. 分布式系统认证方案_分布式系统认证方案_Spring Security OAuth2.0认证授权---springcloud工作笔记136
  9. Seata多微服务互相调用_全局分布式事物使用案例_Account-Module 账户微服务说明---微服务升级_SpringCloud Alibaba工作笔记0064
  10. K8S_Google工作笔记0011---通过二进制方式_部署etcd集群