You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
git-hyper-blame(1)
|
|
==================
|
|
|
|
NAME
|
|
----
|
|
git-hyper-blame -
|
|
include::_git-hyper-blame_desc.helper.txt[]
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git hyper-blame' [-i <rev> [-i <rev> ...]] [--ignore-file=<file>]
|
|
[--no-default-ignores] [<rev>] [--] <file>
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
`git hyper-blame` is like `git blame` but it can ignore or "look through" a
|
|
given set of commits, to find the real culprit.
|
|
|
|
This is useful if you have a commit that makes sweeping changes that are
|
|
unlikely to be what you are looking for in a blame, such as mass reformatting or
|
|
renaming. By adding these commits to the hyper-blame ignore list, `git
|
|
hyper-blame` will look past these commits to find the previous commit that
|
|
touched a given line.
|
|
|
|
Follows the normal `blame` syntax: annotates `<file>` with the revision that
|
|
last modified each line. Optional `<rev>` specifies the revision of `<file>` to
|
|
start from.
|
|
|
|
Automatically looks for a file called `.git-blame-ignore-revs` in the repository
|
|
root directory. This file has the same syntax as the `--ignore-file` argument,
|
|
and any commits mentioned in this file are added to the ignore list.
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
-i <rev>::
|
|
A revision to ignore. Can be specified as many times as needed.
|
|
|
|
--ignore-file=<file>::
|
|
A file containing a list of revisions to ignore. Can have comments beginning
|
|
with `#`.
|
|
|
|
--no-default-ignores::
|
|
Do not ignore commits from the `.git-blame-ignore-revs` file.
|
|
|
|
EXAMPLE
|
|
-------
|
|
|
|
Let's run `git blame` on a file:
|
|
|
|
demo:1[]
|
|
|
|
Notice that almost the entire file has been blamed on a formatting change? You
|
|
aren't interested in the uppercasing of the file. You want to know who
|
|
wrote/modified those lines in the first place. Just tell `hyper-blame` to ignore
|
|
that commit:
|
|
|
|
demo:2[]
|
|
|
|
`hyper-blame` places a `*` next to any line where it has skipped over an ignored
|
|
commit, so you know that the line in question has been changed (by an ignored
|
|
commit) since the given person wrote it.
|
|
|
|
CAVEATS
|
|
-------
|
|
|
|
When a line skips over an ignored commit, a guess is made as to which commit
|
|
previously modified that line, but it is not always clear where the line came
|
|
from. If the ignored commit makes lots of changes in close proximity, in
|
|
particular adding/removing/reordering lines, then the wrong authors may be
|
|
blamed for nearby edits.
|
|
|
|
For this reason, `hyper-blame` works best when the ignored commits are be
|
|
limited to minor changes such as formatting and renaming, not refactoring or
|
|
other more invasive changes.
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-blame[1]
|
|
|
|
include::_footer.txt[]
|
|
|
|
// vim: ft=asciidoc:
|