# 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](/9.4/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 will update 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.

## 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 IDA GUI. It must be done from the command line using standard Git commands:

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

## 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](/9.4/add-ons/teams/how-tos/working-with-git.md#resolving-conflicts).


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
