---
name: "git-mergetool--lib"
section: "1"
platform: "linux"
package: "git"
version: "2.56.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-mergetool--lib"
---

# git-mergetool--lib(1)

Common Git merge tool shell scriptlets

## NAME

git-mergetool--lib - Common Git merge tool shell scriptlets

## SYNOPSIS

```
TOOL_MODE=(diff|merge) . "$(git --exec-path)/git-mergetool--lib"
```

## DESCRIPTION

This is not a command the end user would want to run. Ever. This documentation is meant for people who are studying the Porcelain-ish scripts and/or are writing new ones.

The *git-mergetool--lib* scriptlet is designed to be sourced (using .) by other shell scripts to set up functions for working with Git merge tools.

Before sourcing *git-mergetool--lib*, your script must set **TOOL\_MODE** to define the operation mode for the functions listed below. *diff* and *merge* are valid values.

## FUNCTIONS

get\_merge\_tool

Returns a merge tool. The return code is 1 if we returned a guessed merge tool, else 0. *$GIT\_MERGETOOL\_GUI* may be set to *true* to search for the appropriate guitool.

get\_merge\_tool\_cmd

Returns the custom command for a merge tool.

get\_merge\_tool\_path

Returns the custom path for a merge tool.

initialize\_merge\_tool

Brings merge tool specific functions into scope so they can be used or overridden.

run\_merge\_tool

Launches a merge tool given the tool name and a true/false flag to indicate whether a merge base is present. *$MERGED*, *$LOCAL*, *$REMOTE*, and *$BASE* must be defined for use by the merge tool.

## GIT

Part of the [**git**(1)](/git/1.md) suite
