> For the complete documentation index, see [llms.txt](https://docs.hex-rays.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hex-rays.com/add-ons/teams/concepts/git.md).

# Git

Starting with IDA 9.4, Git is the default version control backend for all new repositories.

Teams Git integration follows the standard software development workflow, using familiar version control concepts, adapted for working with IDB files.

The Git backend eliminates the need for a dedicated Teams server. If your team already has a GitHub, GitLab, or self-hosted Git account, that's all you need.

## Migration from Vault

If you have existing Vault repositories, a dedicated migration tool makes moving to Git straightforward.

{% hint style="success" %}
See the [Vault to Git Migration](/add-ons/teams/how-tos/migrating-from-vault-to-git.md) tutorial to get started.
{% endhint %}

To keep using Vault, go to **Options → General → Teams** and select *Vault* under the **Teams backend** dropdown. The Teams menu updates to reflect the familiar Vault actions.

## Key Concepts

* All operations apply to the currently open database.
* The Git backend is accessible directly from the Teams menu, with available Git-native actions, like Commit, Push, Pull, and more.
* A small helper, **`git-ida`**, lets Git store and reconstruct IDA databases efficiently. It runs transparently during commits and checkouts. You only interact with it directly from a terminal or a script. See [Using `git-ida` from the command line](/add-ons/teams/how-tos/git_ida_cli.md).

## Branching

IDA works with whichever branch is currently checked out in the repository. The status bar shows the active branch name at all times.

Switching branches is not yet supported from within the IDA GUI. Use the command line with standard Git commands:

```bash
git checkout <branch-name>
```

See [Switching branches](/add-ons/teams/how-tos/git_ida_cli.md#switching-branches) in the [Using `git-ida` from the command-line](/add-ons/teams/how-tos/git_ida_cli.md) guide.

## Automerging and Merging

When you pull and the remote has changed since your last sync, IDA needs to reconcile two diverged versions of the same IDB. It does this with a **three-way merge**: it takes your local copy, the remote copy, and the last common ancestor (base), and computes a result that incorporates both sets of changes.

IDA always attempts an **automatic merge** first. A background IDA instance runs the merge without any user interaction. Most everyday divergences (renames at different addresses, comments on separate locations, non-overlapping type changes) are resolved at this stage automatically, and the result is saved as a merge commit.

If the automatic merge cannot resolve everything, IDA falls back to the **interactive merge view**, presenting the three versions side by side so you can decide each conflict manually. Once you finish and save, IDA records a merge commit and reloads the database in your main session.

The merge result is always recorded as a commit in the repository history.

For the step-by-step procedure, see [Resolving Conflicts](/add-ons/teams/how-tos/working-with-git.md#resolving-conflicts).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hex-rays.com/add-ons/teams/concepts/git.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
