# `Dagger.GitRepository`
[🔗](https://github.com/dagger/dagger/blob/v0.20.5/sdk/elixir/lib/dagger/gen/git_repository.ex#L2)

A git repository.

# `t`

```elixir
@type t() :: %Dagger.GitRepository{client: term(), query_builder: term()}
```

# `branch`

```elixir
@spec branch(t(), String.t()) :: Dagger.GitRef.t()
```

Returns details of a branch.

# `branches`

```elixir
@spec branches(t(), [{:patterns, [String.t()]}]) ::
  {:ok, [String.t()]} | {:error, term()}
```

branches that match any of the given glob patterns.

# `commit`

```elixir
@spec commit(t(), String.t()) :: Dagger.GitRef.t()
```

Returns details of a commit.

# `head`

```elixir
@spec head(t()) :: Dagger.GitRef.t()
```

Returns details for HEAD.

# `id`

```elixir
@spec id(t()) :: {:ok, Dagger.GitRepositoryID.t()} | {:error, term()}
```

A unique identifier for this GitRepository.

# `latest_version`

```elixir
@spec latest_version(t()) :: Dagger.GitRef.t()
```

Returns details for the latest semver tag.

# `ref`

```elixir
@spec ref(t(), String.t()) :: Dagger.GitRef.t()
```

Returns details of a ref.

# `tag`

```elixir
@spec tag(t(), String.t()) :: Dagger.GitRef.t()
```

Returns details of a tag.

# `tags`

```elixir
@spec tags(t(), [{:patterns, [String.t()]}]) :: {:ok, [String.t()]} | {:error, term()}
```

tags that match any of the given glob patterns.

# `uncommitted`

```elixir
@spec uncommitted(t()) :: Dagger.Changeset.t()
```

Returns the changeset of uncommitted changes in the git repository.

# `url`

```elixir
@spec url(t()) :: {:ok, String.t() | nil} | {:error, term()}
```

The URL of the git repository.

---

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