Updated: Useful filtering options of git log

Posted . Visible to the public. Auto-destruct in 31 days

Changes

  • Git `log` offers useful options for filtering. This card provides a short overview.
  • ## By message
  • Only commits that include a specific string in their commit message
  • `git log --grep="tracker id"`
  • ## By file
  • Only commits that introduced changes to a specific file
  • `git log -- foo.rb bar.rb`
  • +> [Note]
  • +> In case the file was renamed or moved the `--follow` option can be helpful
  • +
  • +`git log --follow -- foo.rb`
  • +
  • ## By content
  • If you want to know when a specific line of code was added in the project
  • `git log -S"def function_name"`
  • ## By range
  • If you want to know which commits have been added between two commits.
  • `git log base_branch..compare_branch` will show you how many commits were added to `compare_branch` since `base_branch`.
  • ## By count
  • `git log -n` to show only the last `n` commits.
  • ## By date
  • + You can also use `git log --since 2023-02-17` to show only commits from that date until today.
  • + If you want all the dates until a specific date, you can use `git log --until 2021-01-19`
  • > [Note]
  • > The `--since` and `--until` flags are synonymous with `--after` and `--before`, respectively.
  • + You can combine both too: `git log --after="2014-7-1" --before="2014-7-4"`
  • You can use references like "2 years 1 day 3 minutes ago" and "yesterday": `git log --after="yesterday"`
Florian Leinsinger
License
Source code in this card is licensed under the MIT License.
Posted by Florian Leinsinger to makandra dev (2024-10-23 15:51)