---
name: "gl"
section: "1"
platform: "linux"
package: "gitless"
version: "0.8.8-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/gl"
---

# gl(1)

a version control system on top of Git

## NAME

**gl** – a version control system on top of Git

## SYNOPSIS

**gl** **track** *file...*

**gl** **track** **-h**

**gl** **untrack** *file...*

**gl** **untrack** **-h**

**gl** **status** *path...*

**gl** **status** **-h**

**gl** **diff** \[**-e** *file...*\] \[**-i** *file...*\] \[**-o** *file...*\]

**gl** **diff** **-h**

**gl** **commit** \[**-m** *message*\] \[**-p**\] \[**-e** *file...*\] \[**-i** *file...*\] \[**-o** *file...*\]

**gl** **commit** **-h**

**gl** **branch** \[**-r**\] \[**-v**\]

**gl** **branch** \[**-v**\] \[**-dp** *point*\] **-c** *branch...*

**gl** **branch** \[**-v**\] **-d** *branch...*

**gl** **branch** **-sh** *commit\_id*

**gl** **branch** **-su** *branch*

**gl** **branch** **-uu**

**gl** **branch** **-h**

**gl** **tag** \[**-r**\]

**gl** **tag** \[**-ci** *commit\_id*\] **-c** *tag...*

**gl** **tag** **-d** *tag...*

**gl** **tag** **-h**

**gl** **checkout** \[**-cp** *commit\_id*\] *files...*

**gl** **checkout** **-h**

**gl** **merge** *src*

**gl** **merge** **-a**

**gl** **merge** **-h**

**gl** **resolve** *file...*

**gl** **resolve** **-h**

**gl** **fuse** \[**-ip** *commit\_id*\] \[**-e** *commit\_id...*\] \[**-o** *commit\_id...*\] *src*

**gl** **fuse** **-a**

**gl** **fuse** **-h**

**gl** **remote**

**gl** **remote** **-c** *remote* remote\_url

**gl** **remote** **-d** *remote*

**gl** **remote** **-h**

**gl** **publish** *dst\_branch*

**gl** **publish** **-h**

**gl** **switch** \[**-mo**\] *branch*

**gl** **switch** **-h**

**gl** **init** \[*repo*\]

**gl** **init** **-h**

**gl** **history** \[**-c**\] \[**-v**\] \[**-b** *branch\_name*\] \[**-l** *limit*\]

**gl** **history** **-h**

**gl** **-h**

**gl** **--version**

## DESCRIPTION

The **gl** utility is a version control system built on top of Git.

The **gl** utility accepts the following commands:

- **track**

  Start tracking changes to files.

- **untrack**

  Stop tracking changes to files.

- **status**

  Show the status of the repository.

- **diff**

  Show the status of the repository.

- **commit**

  Save changes to the local repository. By default all tracked modified files are committed. To customize the set of files to be committed use the only, exclude, and include flags.

  - **-m**

    Specify the commit message.

  - **-p**, **--partial**

    Interactively select segments of files to commit.

- **branch**

  List, create, edit, or delete branches.

  - **-c**, **--create**

    Create the specified branch(es).

  - **-d**, **--delete**

    Delete the specified branch(es).

  - **-dp**, **-divergent-point**

    The commit from which to “branch out”.

  - **-sh**, **--set-head**

    Set the head of the current branch.

  - **-su**, **--set-upstream**

    Set the upstream branch of the current branch.

  - **-uu**, **--unset-upstream**

    Unset the upstream branch of the current branch.

  - **-v**

    Be verbose, output the head of each branch.

- **tag**

  List, create, or delete tags.

  - **-c**, **--create**

    Create tag(s).

  - **-ci**, **--commit**

    Specify the commit to tag.

  - **-d**, **--delete**

    Delete tag(s).

  - **-r**, **--remote**

    List remote tags in addition to local ones.

- **checkout**

  Checkout the committed versions of the specified files.

  - **-cp**, **--commit-point**

    The commit point to checkout the files as.

- **merge**

  Merge the divergent changes of one branch onto another.

  - **-a**

    Abort the merge in progress.

- **resolve**

  Mark files with conflicts as resolved.

- **fuse**

  Fuse the divergent changes of a branch onto the current branch. By default all divergent changes from the given source branch are fused. To customize the set of commits to fuse use the only and exclude flags.

  - **-a**, **--abort**

    Abort the fuse in progress.

  - **-ip**, **--insertion-point**

    The divergent changes will be inserted after the specified commit.

- **remote**

  List, create, edit, or delete remotes.

  - **-c**, **--create**

    Create a remote.

  - **-d**, **--delete**

    Delete a remote.

- **publish**

  Publish commits upstream.

- **switch**

  Switch branches.

  - **-mo**, **--move-over**

    Move the uncommitted changes made to the current branch to the destination branch.

- **init**

  Create an empty Gitless repository or create one from an existing remote repository.

- **history**

  Show the commit history.

  - **-b**, **--branch**

    The branch to show the history of.

  - **-c**, **--compact**

    Output the history in a compact format.

  - **-l**, **--limit**

    Limit the number of commits displayed.

  - **-v**, **--verbose**

    Be verbose, output the diffs of the commits.

## COMMON OPTIONS

The following options have a similar meaning for various commands:

- **-e**, **--exclude**

  Exclude the specified files; the files must be tracked and modified.

- **-h**, **--help**

  Display a help message.

- **-i**, **--include**

  Include the specified files; the files must be untracked.

- **-o**, **--only**

  Use only the specified files; the files must be tracked and modified.

## ENVIRONMENT

The **gl** utility makes use of the following environment variables, if specified:

- EDITOR

  Specify the editor to use for composing commit messages; default: “**vim**”.

- PAGER

  Specify the pager to be used if the *core.pager* setting is not specified in the Git configuration; default: “**less** **-r** **-f**”. If the pager to be executed is actually [less(1)](/less/1.md), the **-r** and **-f** flags are appended to its arguments.

## FILES

The operation of the **gl** utility is influenced by the same configuration files that [git(1)](/git/1.md) uses; see the “FILES” section of the [git-config(1)](/git-config/1.md) documentation.

## EXAMPLES

Please see the Gitless website at *https://gitless.com/*.

## DIAGNOSTICS

The **gl** utility exits 0 on success, and \>0 if an error occurs.

## SEE ALSO

[git(1)](/git/1.md)

## AUTHORS

Santiago Perez De Rosso ⟨sperezde@csail.mit.edu⟩

This manual page was written for the Debian project by Peter Pentchev ⟨roam@ringlet.net⟩
