> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reliantlabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Git Integration

> GitHub CLI requirements and source control features

Reliant integrates with Git for status, branching, worktrees, and pull-request workflows. Some GitHub-specific actions require the GitHub CLI (`gh`).

## What requires GitHub CLI

| Feature                          | Requires `gh` |
| -------------------------------- | ------------- |
| Create PR from workspace         | Yes           |
| Push branch to remote            | Yes           |
| Detect repository default branch | Yes           |
| View git status                  | No            |
| Create commits                   | No            |
| Create or switch branches        | No            |
| Create workspaces                | No            |

## Installing GitHub CLI

### macOS

```bash theme={null}
brew install gh
```

### Linux

```bash theme={null}
# Debian/Ubuntu
sudo apt install gh

# Fedora
sudo dnf install gh
```

### Windows

```powershell theme={null}
winget install GitHub.cli
```

You can also download installers from [cli.github.com](https://cli.github.com/).

## Authenticating

After installation:

```bash theme={null}
gh auth login
```

Follow the prompts to authenticate through the browser or a token-based flow.

## Creating pull requests from workspaces

<img src="https://mintcdn.com/reliantlabs/NoVh64u5lvQ64evP/images/screenshots/create-pr.png?fit=max&auto=format&n=NoVh64u5lvQ64evP&q=85&s=8a697dd948f24f8a464c3ad5962a6dc1" alt="Create pull request dialog from a workspace" width="3160" height="2170" data-path="images/screenshots/create-pr.png" />

A typical flow is:

1. make changes in a workspace
2. review status and commit
3. push the branch
4. create a PR from the workspace UI

If `gh` is missing or unauthenticated, Reliant will surface an error and point you toward setup.

## Default branch detection

Reliant uses `gh` to detect the repository’s default branch when available. If that fails, it falls back to conventional defaults such as `main` or `master`.

## Related topics

* [Worktrees & Workspaces](/features/worktrees)
* [Processes](/features/processes)
* [Branching](/features/branching)
