mirror of
https://github.com/jbranchaud/til
synced 2026-07-03 08:08:24 +00:00
34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
# Programmatically Grab SHA For Head Commit
|
||
|
||
When I use `gh browse path/to/some-file.txt`, it opens the browser to that file
|
||
in GitHub. However, it targets the default branch (`main`) by default which is
|
||
not very useful as a permalink because what that file looks like on `main` is
|
||
liable to change.
|
||
|
||
There is a `--commit` flag you can use to have it instead open to that file at a
|
||
specific commit SHA.
|
||
|
||
So what SHA do I pass as an argument to that flag?
|
||
|
||
Often what I would like to grab is a reference to the current version of the
|
||
file which is whatever it looks like for the `HEAD` commit. But `HEAD` is
|
||
another moving target reference. The `git rev-parse` command can translate
|
||
`HEAD` into a specific SHA though.
|
||
|
||
```bash
|
||
❯ git rev-parse --short HEAD
|
||
3402428
|
||
|
||
❯ git rev-parse HEAD
|
||
3402428aadc02cfdc9825c8feb593443e72f50cd
|
||
```
|
||
|
||
Either of those will work. I can use a bash command substitution then to tie it
|
||
all together into a single command:
|
||
|
||
```bash
|
||
❯ gh browse path/to/some-file.txt --commit=$(git rev-parse --short HEAD)
|
||
```
|
||
|
||
See `man git-rev-parse` for more details.
|