# `Exgit.Transport.File`
[🔗](https://github.com/ivarvong/exgit/blob/v0.1.0/lib/exgit/transport/file.ex#L1)

`Exgit.Transport` implementation that reads from and writes to a
local on-disk git repository (bare or non-bare) without going
over the network.

Used by tests, by local roundtrip workflows, and as a reference
implementation of the transport protocol. `fetch/3` walks the
disk object store to collect reachable objects and assembles a
pack; `push/4` unpacks the received pack into disk and applies
ref updates with CAS semantics.

# `t`

```elixir
@type t() :: %Exgit.Transport.File{path: Path.t()}
```

# `capabilities`

# `fetch`

# `ls_refs`

# `new`

```elixir
@spec new(Path.t()) :: t()
```

# `push`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
