1. 配置用户信息

git config --global user.name <name>
git config --global user.email <email_address>

2. 配置高亮显示

git config --global color.ui auto

  使用auto的高亮配置比较省事。

3. 配置git log

git config --global log.decorate short

  decorate选项设置成short,这样在commit message上会显示对应的ref name。(省略前缀refs/heads/, refs/tags/ and refs/remotes/)

4. 配置git send-email

git config --global sendemail.smtpserver <smtpserver>
git config --global sendemail.confirm always
git config --global sendemail.suppresscc all

  confirm选项设置成每次发送总会提示确认信息。suppresscc选项设置成完全禁止auto cc,这样就不会通过检查commit message自动添加email到CC list里了。

5. 查看图形化的提交历史

git log --graph --oneline

6. 查看merge的信息

  只查看merge提交。

git log --merges --oneline

  对于merge,在commit信息中会显示两个分支在merge前的commit。

$ git show c1ef57a
commit c1ef57a3a3f5e69e98baf89055b423da62791c13 (HEAD -> master)
Merge: ed535f2 2faf852
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu Feb :: + Merge tag 'io_uring-5.6-2020-02-05' of git://git.kernel.dk/linux-block
[...]

  查看两个分支的共同祖先。

git merge-base ed535f2 2faf852

7. 为连续的commit生成patch

git format-patch <base_commit>..<latest_commit>

  不包含base_commit。

8. cherry-pick连续的commit

git cherry-pick <base_commit>..<latest_commit>

  不包含base_commit。使用-n选项的话,可以在cherry-pick的过程中不提交commit,而是cherry-pick全部完成后手动提交一个commit。

9. git merge

git merge --no-ff <branch/tag/commit>

fast-forward merge

  从master branch创建一个devel branch来接收commit提交,而master上不再有commit提交。master在merge devel的时候,就可以进行fast-forward merge,将devel上的每个commit都apply到master上并且保持commit ID不变,最后不再创建merge commit。

non-fast-forward merge

  这是常用的merge方式,创建一个merge commit,在该merge commit上merge devel branch上的代码改动。使用选项--no-ff。

10. git tag

git tag -a <tag_name> <commit_id>

最新文章

  1. css权威指南--笔记
  2. Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
  3. UIKit框架之UIGestureRecognizer
  4. hdu3410 单调队列
  5. Android进阶笔记19:onInterceptTouchEvent、onTouchEvent与onTouch
  6. HDU 5842 Lweb and String (水题)
  7. Linux下Ant的安装
  8. python-cmp()的使用
  9. js清除cookie有时无法清除
  10. github中删除项目
  11. jemeter 实现接口自动化回归测试
  12. selenium中webdriver识别class属性多个值中有空格的解决方案
  13. 如何看iOS崩溃日志
  14. 史上最全 原生javascript的知识总结,适合新手及查资料用!
  15. ionic3 打包Xcode 9 Swift Language Version (SWIFT_VERSION) Ask 报错
  16. LeetCode--015--三元之和(java)
  17. 《使用python进行数据分析》
  18. 设置cookie,获取cookie,删除cookie,修改cookie
  19. 蜗牛—ORACLE基础之学习(二)
  20. C#string数组转换到int数组并得到最大最小值

热门文章

  1. Leetcode 题目整理-6 Swap Nodes in Pairs &amp; Remove Duplicates from Sorted Array
  2. Docker快速上手之搭建SpringBoot项目
  3. 介绍Netty
  4. linux下的 $ ./configure $ sudo make &amp;&amp; sudo make install
  5. 脚本、脚本语言、shell脚本
  6. js - 构造函数-静态属性/方法-原型对象 - 前端第八课
  7. Codeforces 1064D Labyrinth(双端队列BFS)
  8. Gdal随笔
  9. mysql 支持emoji表情
  10. Java开发最佳实践(一) ——《Java开发手册》之&quot;编程规约&quot;