Vim Fugitive: варианты переобвинения Gblame

Недавно я использовал Gblame от Fugitive, но не совсем понимаю, что делает «reblame».

Может ли кто-нибудь описать более четко, что делают эти параметры:

 -     reblame at commit
 ~     reblame at [count]th first grandparent
 P     reblame at [count]th parent (like HEAD^[count])

person Jonathan.Brink    schedule 13.08.2014    source источник


Ответы (1)


Думайте о повторном обвинении как о переходе к коммиту, а затем об обвинении вашего файла или git blame <commit> -- <file>.

  • - простейший случай. Используйте рассматриваемую фиксацию под курсором и переименуйте файл.
  • ~ Эквивалентно запуску git blame <rev>~[count] -- <file>
  • P Эквивалентно запуску git blame <rev>^[count] -- <file>

Для общего случая, т.е. никакие [count], ~ и P не эквивалентны. (Обратите внимание, что [count] по умолчанию равно 1)

Руководство по быстрой доработке взято с 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

Чтобы узнать больше о нотации ревизии git, см.:

Для получения дополнительной помощи по git blame см. git help blame

person Peter Rincker    schedule 13.08.2014
comment
Спасибо, эта строка помогла мне прояснить ситуацию: подумайте о повторном обвинении как о переходе к коммиту, а затем об обвинении вашего файла. - person Jonathan.Brink; 13.08.2014