diff options
author | EuAndreh <eu@euandre.org> | 2020-08-16 06:33:47 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2020-08-16 06:34:40 -0300 |
commit | 60294ff62423a371a91442ff88935822021ccd0a (patch) | |
tree | ed4cf6ef305fd3fbb7cfd66055dd793994286d61 | |
parent | Adapt add-anchor-to-header-from-header-id to handle <hn><a></a></hn> (diff) | |
download | euandre.org-60294ff62423a371a91442ff88935822021ccd0a.tar.gz euandre.org-60294ff62423a371a91442ff88935822021ccd0a.tar.xz |
Add TIL on searching in git
-rw-r--r-- | _tils/2020-08-16-search-in-git.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/_tils/2020-08-16-search-in-git.md b/_tils/2020-08-16-search-in-git.md new file mode 100644 index 0000000..b76cdf5 --- /dev/null +++ b/_tils/2020-08-16-search-in-git.md @@ -0,0 +1,51 @@ +--- +title: Search in git +date: 2020-08-16 +layout: til +lang: en +ref: search-in-git +--- + +Here's a useful trio to know about to help you search things in git: + +1. `git show <commit>` +2. `git log --grep='<regexp>` +3. `git grep '<regexp>' [commit]` + +## 1. `git show <commit>` + +Show a specific commit and it's diff: + +```shell +git show +# shows the latest commit +git show <commit> +# shows an specific <commit> +git show v1.2 +# shows commit tagged with v1.2 +``` + +## 2. `git log --grep='<regexp>` + +Search through the commit messages: + +```shell +git log --grep='refactor' +``` + +## 3. `git grep <regexp> [commit]` + +Search content in git history: + +```shell +git grep 'TODO' +# search the repository for the "TODO" string +git grep 'TODO' $(git rev-list --all) +# search the whole history for "TODO" string +``` + +And if you find an occurrence of the regexp in a specific commit and you want to +browse the repository in that point in time, you can +[use git checkout for that][0]. + +[0]: {% link _tils/2020-08-14-browse-a-git-repository-at-a-specific-commit.md %} |