# git-dag

## SYNOPSIS

`git dag [options] [<revision-range>] [[--] [<path>...]]`

## DESCRIPTION

git-dag is an advanced Git history visualizer that presents `git log`'s powerful features in an easy to use graphical interface.

## OPTIONS

### `<revision-range>`

Show only commits in the specified revision range. When no `<revision-range>` is specified, it defaults to `HEAD` (i.e. the whole history leading to the current commit).

`origin..HEAD` specifies all the commits reachable from the current commit (i.e. `HEAD`), but not from `origin`.

For a complete list of ways to spell `<revision-range>`, see the Specifying Ranges section of gitrevisions(7) (`man gitrevisions`).

### `--prompt`

Prompt for a Git repository instead of using the current directory.

### `-r, --repo <path>`

Open the git repository located at `<path>`. Defaults to the current directory.

### `--version`

Print the version number and exit.

### `-h, --help`

Show usage and optional arguments.

## Log Arguments

The `Log` text field allows you to pass arguments to git log. This can be used to filter the displayed history, for example entering main -- Makefile will display only commits on the main branch that touch the Makefile.

The Log text field lets you interactively edit and replace the `[<revision-range>] [[--] [<path>...]]` arguments that were initially specified on the command-line.

## CONTEXT-MENU ACTIONS

The right-click menu can be used to perform various actions. All actions operate on the selected commit.

You can create branches and tags, cherry-pick commits, save patches, export tarballs, and grab files from older commits using the context menu.

## DIFF COMMITS

You can diff arbitrary commits. Select a single commit in either the list view or the graph view and then right-click on a second commit.

A menu will appear allowing you to diff the two commits.

## SHORTCUTS

You can run commands using dedicated shortcuts. Select a single commit and then press Ctrl-Alt-c to copy sha1 or Ctrl-d to run diff tool.

You can read more about hotkeys from 'keyboard shortcuts' window or context menu.

## CONFIGURATION VARIABLES

### log.date

Set the default date-time format for the 'Date' field. Setting a value for log.date is similar to using git log's --date option. Possible values are relative, local, default, iso, rfc, and short; see git-log(1) for details.