I've been using Fugitive's Gblame recently but don't quite understand what "reblame" does.
Can someone describe a little more clearly what these options do:
- reblame at commit
~ reblame at [count]th first grandparent
P reblame at [count]th parent (like HEAD^[count])
Think of reblame as navigating to a commit and then running blame on your file or git blame <commit> -- <file>
-
the simplest case. Use the commit in question under your cursor and reblame the file.~
Is equivalent to runninggit blame <rev>~[count] -- <file>
P
Is equivalent to runninggit blame <rev>^[count] -- <file>
For the common case, i.e. no [count]
, ~
and P
are the equivalent. (Note that [count]
defaults to 1)
Quick revision tutorial taken from git help gitrevisions
:
Here is an illustration, by Jon Loeliger.
Both commit nodes B and C are parents of commit node A.
Parent commits are ordered left-to-right.
G H I J
\ / \ /
D E F
\ | / \
\ | / |
\|/ |
B C
\ /
\ /
A
A = = A^0
B = A^ = A^1 = A~1
C = A^2 = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
To understand more about git revision notation see:
git help gitrevisions
- Git Tools - Revision Selection
- Carats and Tildes, Resets and Reverts Note: this article is talking about reset however the graph and revision part is helpful towards the middle of the article.
For more help with git blame
see git help blame
来源:https://stackoverflow.com/questions/25286726/vim-fugitive-gblame-reblame-options