点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

作者 :  Maxence Poutord

原文: New Frontend 网站

如果你觉得 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 origin
git checkout master
git 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.js
s 45f0259 fix: update index.js
s 8b15b0a fix: typo in index.js

修正

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

git 提交分支

git add .
git commit --fixup HEAD~1
# 或者也可以用提交的哈希值(fed14a4c)替换 HEAD~1git 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 ]] ; thensince="2 days ago"figit log --all --since "$since" --oneline --author="$AUTHOR"
}

点个在看少个 bug

Git 高级用法小抄相关推荐

  1. Git 高级用法,喜欢就拿去用!

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

  2. 工作中必须要知道的git高级用法

    1. rebase变基 问题: 工作中我们一般是从master分支拉自己的开发分支开发,如果master分支被组长合并了其他同事的开发,也就是master分支ahead你的分支,我们这时一般不能直接提 ...

  3. Git log高级用法

    格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config ...

  4. 如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!

    作者 |Maxence Poutord 责编 | Carol 来源 | 漫话编程 封图 | CSDN付费下载于视觉中国 如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 g ...

  5. amend用法 git 信息_Git 高级用法,你用过哪些了

    ‍ 文章来自:http://segmentfault.com/a/1190000021643071 作者:yuanchuang 点击加入:PHP自学中心交流③群 商务合作: 请加微信(QQ):2230 ...

  6. Git 居然还有这么高级用法,你一定需要

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

  7. Excel小技巧!格式刷的5个高级用法,你不一定知道哦

    Excel小技巧!格式刷的5个高级用法,你不一定知道哦 目录 Excel小技巧!格式刷的5个高级用法,你不一定知道哦 1.使用格式刷,填充单元格颜色 2.使用格式刷,复制列宽或行宽. 3.使用格式刷, ...

  8. 【Python基础】Matplotlib官方小抄手册公开(配套可视化代码)!

    出品:Python数据科学 作者:东哥起飞 Matplotlib作为强大的数据可视化工具,一直备受Python数据爱好者们追捧.网络上虽有零零散散的教程,但并不是非常的系统和直观,往往我们遇到一些问题 ...

  9. Java多线程知识小抄集(二)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

最新文章

  1. Nodejs随学随记(杂)
  2. AAuto如何设置combobox
  3. asp.net中的<%%>形式的详细用法总结
  4. 六:Dubbo与Zookeeper、SpringMvc整合和使用
  5. 当孩子面对困难的时候,家人可能的鼓励的方式
  6. 快讯千树资本投资柒小佰 踏入儿童出行消费领域...
  7. ssl1063-统计数字【哈希表】
  8. acid(数据库事务正确执行的四个基本要素的缩写)
  9. 大数据之-Hadoop3.x_MapReduce_ReduceTask工作机制并行度---大数据之hadoop3.x工作笔记0125
  10. CSS3秘笈复习:第一章第二章第三章
  11. Android应用程序启动Binder线程源码分析
  12. 2.PHP7内核剖析 --- SAPI
  13. 小程序--模板的使用 说明--详细版的
  14. 银行票据+票据池相关的项目讲解
  15. 关系型数据库基础概念:MySQL系列之开篇
  16. iptables防火墙
  17. spring boot参数校验 告别校验胶水代码
  18. 工作站和台式机的区别
  19. 第三方App接入微信登录 解读
  20. ble4.2空口包详解(air interface packets)

热门文章

  1. 利用BP神经网络教计算机识别语音特征信号(代码部分SS)
  2. 分析与设计(AD)简介(3)
  3. iPhone 隐私新规下的“大地震”:四大平台损失近百亿美元,“连用户是男是女都分不清……”
  4. AI 天气预报准确度高于气象台,一张 GPU 1秒预测未来 90 分钟天气
  5. 程序员奶爸用树莓派制作婴儿监护仪:哭声自动通知,还能分析何时喂奶
  6. 让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...
  7. 云厂商和开源厂商“鹬蚌相争”,他却看到了开发者的新机会
  8. 从起源、变体到评价指标,一文解读NLP的注意力机制
  9. 保障高并发:企业必须从传统性能测试转向云压测
  10. 如此精心整理的深度学习资源只在这里,值得你拥有!(上篇)