GIT-MERGETOOL--LIB(1) Git Manual GIT-MERGETOOL--LIB(1)

# [NAME](#NAME)

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

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#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](#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](#GIT)

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

2026-06-29 Git 2.55.0

---

Document: git-mergetool--lib(1) from git 2.55.0-r9 (Chainguard OS)
Source: https://kernel.googlesource.com/pub/scm/git/git.git
