Git Diff Sources
Skim shells out to git in your current directory and follows git’s own diff
conventions, so the argument you’d pass to git diff is (broadly) the argument
you pass to skim.
Working directory
Section titled “Working directory”skimShows unstaged changes in your working tree: the same set git diff would
show.
Staged changes
Section titled “Staged changes”skim --stagedShows what you’ve staged: the equivalent of git diff --staged. You can stage
files from inside the TUI with a / A; see staging.
Against a branch or ref
Section titled “Against a branch or ref”# Working directory compared to a branchskim main
# Staged changes compared to a branchskim --staged mainComparing two refs
Section titled “Comparing two refs”# Two branchesskim main featureskim main..feature
# Two commitsskim abc123..def456Both the space-separated (main feature) and range (main..feature) forms
compare the two endpoints directly.
Merge-base comparison
Section titled “Merge-base comparison”skim main...featureThe three-dot form compares against the merge base. It shows the changes
made on feature since it diverged from main, ignoring changes that landed on
main in the meantime. This is usually what you want when reviewing a branch
for merge.
Relative refs
Section titled “Relative refs”# Working directory vs. 5 commits agoskim HEAD~5Any ref git understands works, including HEAD~n, tags, and SHAs.
Respecting your git config
Section titled “Respecting your git config”Because Skim runs git in your working directory, it inherits your git configuration automatically: diff settings, includes, and credentials all apply exactly as they would on the command line.
See also the command-line usage reference.