ctrlcv-dev.comgithub

Git revisioncheatsheet

一个 revision 的规范及使用方法整理,从 man gitrevisions 整理而来,可以用于 git log 等命令

示例

参考说明
git log master...develop查看分支的不同
git rebase -i HEAD~3Rebase 最新的 3 个 Commit
git reset --hard HEAD@{2}撤销最新的操作
git checkout v2^{}切换到 v2 标签 (不是 v2 分支)

The 3rd argument in each of these commands is a gitrevision. These gitrevisions can be passed to many Git commands.

常见的 Revision

示例说明
git show dae68e1SHA1
git show HEADreference
git show v1.0.0标签
------
git show master本地分支
git show origin/master远程分支
------
git show master~2master 之前的两个 Commit
------
git show master..fixfixmaster (不包括 master)
git show master...fixfixmaster (fix 和 master 均不包括)

参考

Commit

| git checkout dae68e1 | sha1 |

参考

示例说明
git checkout HEADreference
git checkout masterbranch
git checkout v1.0.0tag
------
git checkout origin/master也可写作, refs/remotes/origin/master
git checkout heads/master也可写作, refs/heads/master

向前检索

示例说明
git checkout master@{yesterday}也可以写 1 day ago, 等等
git checkout master@{2}向前数第二个
git checkout master@{push}master 将要 push 的地方
------
git checkout master^master 之前的 commit
git checkout master^2master 的前两个 commit
git checkout master~5master 的前 5 个 commit
git checkout master^0当前 commit
------
git checkout v0.99.8^{tag}可以是 commit, tag, tree, object
git checkout v0.99.8^{}默认是 {tag}
------
git checkout ":/fix bug"搜搜 commit 的信息

其他

| HEAD:README | ... | | 0:README | (0 to 3) ... |

范围

范围

| git log master | master 分支的祖先 Commit | | git log ^master | master 分支的祖先 Commit, 但排除祖先的祖先 | | git log master..fix | 从 fixmaster 不包含 master | | git log master...fix | 从 fixmaster, master 和 fix 均不包含 | | git log HEAD^@ | HEAD 的祖先 Commit | | git log HEAD^! | HEAD, 但排除祖先的祖先节点 | | git log HEAD^ | 搜之前一个 HEAD 匹配的标准|

范围图标

NOHIGHLIGHT
A ─┬─ E ── F ── G master
└─ B ── C ── D fix

| git log master..fix | BCD | | git log master...fix | BCD and EFG |

参考资料