# git v0.4.0 - API Reference

## Modules

- [Git](Git.md): An Elixir wrapper for the git CLI.

- Higher-Level
  - [Git.Branches](Git.Branches.md): Higher-level branch workflow operations that compose multiple lower-level
`Git` commands.
  - [Git.Changes](Git.Changes.md): Higher-level change analysis helpers that compose lower-level `Git` functions.
  - [Git.Conflicts](Git.Conflicts.md): Merge conflict detection and resolution helpers that compose `Git.status/1`
and `Git.merge/2`.
  - [Git.History](Git.History.md): Higher-level history query helpers that compose lower-level `Git` functions.
  - [Git.Hooks](Git.Hooks.md): Helpers for reading, writing, and managing git hooks.
  - [Git.Info](Git.Info.md): One-call repository introspection helpers that compose lower-level `Git` functions.
  - [Git.Patch](Git.Patch.md): Higher-level patch workflow operations that compose `Git.format_patch/1`,
`Git.apply_patch/1`, and `Git.am/1`.
  - [Git.Remotes](Git.Remotes.md): Higher-level remote management helpers that compose lower-level `Git` functions.
  - [Git.Repo](Git.Repo.md): A stateful repository abstraction for the git CLI wrapper.
  - [Git.Search](Git.Search.md): Higher-level search helpers that compose lower-level `Git` functions.
  - [Git.Stashes](Git.Stashes.md): Higher-level stash management operations that compose the lower-level
`Git.stash/1` command.
  - [Git.Tags](Git.Tags.md): Higher-level tag management helpers that compose lower-level `Git` functions.
  - [Git.Workflow](Git.Workflow.md): Composable helpers for common multi-step git workflows.

- Data Structures
  - [Git.BisectResult](Git.BisectResult.md): Result of a git bisect operation.
  - [Git.BlameEntry](Git.BlameEntry.md): Struct representing a single parsed git blame entry.
  - [Git.Branch](Git.Branch.md): Parsed representation of a git branch entry.
  - [Git.Checkout](Git.Checkout.md): Represents the result of a `git checkout` branch operation.
  - [Git.CherryEntry](Git.CherryEntry.md): Parsed representation of a `git cherry` output line.
  - [Git.CherryPickResult](Git.CherryPickResult.md): Represents the parsed result of a `git cherry-pick` command.
  - [Git.Commit](Git.Commit.md): Struct representing a single parsed git commit entry.

  - [Git.CommitResult](Git.CommitResult.md): Represents the parsed result of a `git commit` command.
  - [Git.Diff](Git.Diff.md): Parsed representation of `git diff` output.
  - [Git.DiffFile](Git.DiffFile.md): Parsed representation of a single file's contribution to a `git diff --stat`.
  - [Git.GrepResult](Git.GrepResult.md): Struct representing a single parsed git grep match.
  - [Git.LsRemoteEntry](Git.LsRemoteEntry.md): Struct representing a single entry from `git ls-remote` output.
  - [Git.MergeResult](Git.MergeResult.md): Represents the parsed result of a `git merge` command.
  - [Git.PullResult](Git.PullResult.md): Represents the parsed result of a `git pull` command.
  - [Git.RebaseResult](Git.RebaseResult.md): Represents the parsed result of a `git rebase` command.
  - [Git.ReflogEntry](Git.ReflogEntry.md): Parsed representation of a single git reflog entry.
  - [Git.Remote](Git.Remote.md): Represents a git remote with its name, fetch URL, and push URL.
  - [Git.RevertResult](Git.RevertResult.md): Represents the parsed result of a `git revert` command.
  - [Git.ShortlogEntry](Git.ShortlogEntry.md): Parsed representation of a git shortlog entry.
  - [Git.ShowResult](Git.ShowResult.md): Represents the parsed result of a `git show` command.
  - [Git.StashEntry](Git.StashEntry.md): Parsed representation of a git stash entry.
  - [Git.Status](Git.Status.md): Parsed representation of `git status --porcelain=v1 -b` output.
  - [Git.SubmoduleEntry](Git.SubmoduleEntry.md): Parsed representation of a git submodule status entry.
  - [Git.Tag](Git.Tag.md): Parsed representation of a git tag.
  - [Git.TreeEntry](Git.TreeEntry.md): Struct representing a single entry from `git ls-tree` output.
  - [Git.Worktree](Git.Worktree.md): Parsed representation of a git worktree entry.

- Commands
  - [Git.Commands.Add](Git.Commands.Add.md): Implements the `Git.Command` behaviour for `git add`.
  - [Git.Commands.Am](Git.Commands.Am.md): Implements the `Git.Command` behaviour for `git am`.
  - [Git.Commands.Apply](Git.Commands.Apply.md): Implements the `Git.Command` behaviour for `git apply`.
  - [Git.Commands.Archive](Git.Commands.Archive.md): Implements the `Git.Command` behaviour for `git archive`.
  - [Git.Commands.Bisect](Git.Commands.Bisect.md): Implements the `Git.Command` behaviour for `git bisect`.
  - [Git.Commands.Blame](Git.Commands.Blame.md): Implements the `Git.Command` behaviour for `git blame`.
  - [Git.Commands.Branch](Git.Commands.Branch.md): Implements the `Git.Command` behaviour for `git branch`.
  - [Git.Commands.Bundle](Git.Commands.Bundle.md): Implements the `Git.Command` behaviour for `git bundle`.
  - [Git.Commands.CatFile](Git.Commands.CatFile.md): Implements the `Git.Command` behaviour for `git cat-file`.
  - [Git.Commands.CheckIgnore](Git.Commands.CheckIgnore.md): Implements the `Git.Command` behaviour for `git check-ignore`.
  - [Git.Commands.Checkout](Git.Commands.Checkout.md): Implements the `Git.Command` behaviour for `git checkout`.
  - [Git.Commands.Cherry](Git.Commands.Cherry.md): Implements the `Git.Command` behaviour for `git cherry`.
  - [Git.Commands.CherryPick](Git.Commands.CherryPick.md): Implements the `Git.Command` behaviour for `git cherry-pick`.
  - [Git.Commands.Clean](Git.Commands.Clean.md): Implements the `Git.Command` behaviour for `git clean`.
  - [Git.Commands.Clone](Git.Commands.Clone.md): Implements the `Git.Command` behaviour for `git clone`.
  - [Git.Commands.Commit](Git.Commands.Commit.md): Implements the `Git.Command` behaviour for `git commit`.
  - [Git.Commands.Describe](Git.Commands.Describe.md): Implements the `Git.Command` behaviour for `git describe`.
  - [Git.Commands.Diff](Git.Commands.Diff.md): Implements the `Git.Command` behaviour for `git diff`.
  - [Git.Commands.Fetch](Git.Commands.Fetch.md): Implements the `Git.Command` behaviour for `git fetch`.
  - [Git.Commands.ForEachRef](Git.Commands.ForEachRef.md): Implements the `Git.Command` behaviour for `git for-each-ref`.
  - [Git.Commands.FormatPatch](Git.Commands.FormatPatch.md): Implements the `Git.Command` behaviour for `git format-patch`.
  - [Git.Commands.Fsck](Git.Commands.Fsck.md): Implements the `Git.Command` behaviour for `git fsck`.
  - [Git.Commands.Gc](Git.Commands.Gc.md): Implements the `Git.Command` behaviour for `git gc`.
  - [Git.Commands.GitConfig](Git.Commands.GitConfig.md): Implements the `Git.Command` behaviour for `git config`.
  - [Git.Commands.Grep](Git.Commands.Grep.md): Implements the `Git.Command` behaviour for `git grep`.
  - [Git.Commands.HashObject](Git.Commands.HashObject.md): Implements the `Git.Command` behaviour for `git hash-object`.
  - [Git.Commands.Init](Git.Commands.Init.md): Implements the `Git.Command` behaviour for `git init`.
  - [Git.Commands.InterpretTrailers](Git.Commands.InterpretTrailers.md): Implements the `Git.Command` behaviour for `git interpret-trailers`.
  - [Git.Commands.Log](Git.Commands.Log.md): Implements the `Git.Command` behaviour for `git log`.
  - [Git.Commands.LsFiles](Git.Commands.LsFiles.md): Implements the `Git.Command` behaviour for `git ls-files`.
  - [Git.Commands.LsRemote](Git.Commands.LsRemote.md): Implements the `Git.Command` behaviour for `git ls-remote`.
  - [Git.Commands.LsTree](Git.Commands.LsTree.md): Implements the `Git.Command` behaviour for `git ls-tree`.
  - [Git.Commands.Maintenance](Git.Commands.Maintenance.md): Implements the `Git.Command` behaviour for `git maintenance`.
  - [Git.Commands.Merge](Git.Commands.Merge.md): Implements the `Git.Command` behaviour for `git merge`.
  - [Git.Commands.MergeBase](Git.Commands.MergeBase.md): Implements the `Git.Command` behaviour for `git merge-base`.
  - [Git.Commands.Mv](Git.Commands.Mv.md): Implements the `Git.Command` behaviour for `git mv`.
  - [Git.Commands.Notes](Git.Commands.Notes.md): Implements the `Git.Command` behaviour for `git notes`.
  - [Git.Commands.Pull](Git.Commands.Pull.md): Implements the `Git.Command` behaviour for `git pull`.
  - [Git.Commands.Push](Git.Commands.Push.md): Implements the `Git.Command` behaviour for `git push`.
  - [Git.Commands.RangeDiff](Git.Commands.RangeDiff.md): Implements the `Git.Command` behaviour for `git range-diff`.
  - [Git.Commands.Rebase](Git.Commands.Rebase.md): Implements the `Git.Command` behaviour for `git rebase`.
  - [Git.Commands.Reflog](Git.Commands.Reflog.md): Implements the `Git.Command` behaviour for `git reflog`.
  - [Git.Commands.Remote](Git.Commands.Remote.md): Implements the `Git.Command` behaviour for `git remote`.
  - [Git.Commands.Rerere](Git.Commands.Rerere.md): Implements the `Git.Command` behaviour for `git rerere`.
  - [Git.Commands.Reset](Git.Commands.Reset.md): Implements the `Git.Command` behaviour for `git reset`.
  - [Git.Commands.Restore](Git.Commands.Restore.md): Implements the `Git.Command` behaviour for `git restore`.
  - [Git.Commands.RevList](Git.Commands.RevList.md): Implements the `Git.Command` behaviour for `git rev-list`.
  - [Git.Commands.RevParse](Git.Commands.RevParse.md): Implements the `Git.Command` behaviour for `git rev-parse`.
  - [Git.Commands.Revert](Git.Commands.Revert.md): Implements the `Git.Command` behaviour for `git revert`.
  - [Git.Commands.Rm](Git.Commands.Rm.md): Implements the `Git.Command` behaviour for `git rm`.
  - [Git.Commands.Shortlog](Git.Commands.Shortlog.md): Implements the `Git.Command` behaviour for `git shortlog`.
  - [Git.Commands.Show](Git.Commands.Show.md): Implements the `Git.Command` behaviour for `git show`.
  - [Git.Commands.ShowRef](Git.Commands.ShowRef.md): Implements the `Git.Command` behaviour for `git show-ref`.
  - [Git.Commands.SparseCheckout](Git.Commands.SparseCheckout.md): Implements the `Git.Command` behaviour for `git sparse-checkout`.
  - [Git.Commands.Stash](Git.Commands.Stash.md): Implements the `Git.Command` behaviour for `git stash`.
  - [Git.Commands.Status](Git.Commands.Status.md): Implements the `Git.Command` behaviour for `git status`.
  - [Git.Commands.Submodule](Git.Commands.Submodule.md): Implements the `Git.Command` behaviour for `git submodule`.
  - [Git.Commands.Switch](Git.Commands.Switch.md): Implements the `Git.Command` behaviour for `git switch`.
  - [Git.Commands.SymbolicRef](Git.Commands.SymbolicRef.md): Implements the `Git.Command` behaviour for `git symbolic-ref`.
  - [Git.Commands.Tag](Git.Commands.Tag.md): Implements the `Git.Command` behaviour for `git tag`.
  - [Git.Commands.UpdateRef](Git.Commands.UpdateRef.md): Implements the `Git.Command` behaviour for `git update-ref`.
  - [Git.Commands.VerifyCommit](Git.Commands.VerifyCommit.md): Implements the `Git.Command` behaviour for `git verify-commit`.
  - [Git.Commands.VerifyTag](Git.Commands.VerifyTag.md): Implements the `Git.Command` behaviour for `git verify-tag`.
  - [Git.Commands.Worktree](Git.Commands.Worktree.md): Implements the `Git.Command` behaviour for `git worktree`.

- Internals
  - [Git.Command](Git.Command.md): Behaviour and runner for git commands.
  - [Git.Config](Git.Config.md): Configuration for the git CLI wrapper.

