# Menus and actions

Find repository, branch, commit, file, and recovery actions.

## Repositories and branches

Use the toolbar's plus menu to open, clone, or create a repository, or create a group. File > Open Recent reopens saved locations. Repository actions include Fetch, Refresh, Repository Settings, Rebuild Search Index, Reveal in Finder, and opening the folder in Terminal.

Use the source selector to switch local branches. Branch actions include creating, switching, deleting, publishing, merging, and rebasing. Deleting a local branch uses Git's merged-branch check. Switching to a remote branch creates a local tracking branch. The separate Rebase onto Branch action has a confirmation.

## Commit actions

Right-click a commit to copy its full hash, cherry-pick it, revert it, create a branch or tag, check it out, or reset the current branch to it.

An ordinary cherry-pick starts immediately. Cherry-picking or reverting a merge commit requires a mainline parent. Revert creates a new commit. Creating a branch at a historical commit does not switch branches.

Tags created here are lightweight tags: names that point to selected commits. They have no annotation or signature, even when tag signing is configured.

Enter a tag name, such as `v1.0`, then click Create Tag or press Return. Changing focus does not create a tag.

The Create Tag button is disabled when the name is blank, invalid, or already in use. Use the explanation below the name field to correct the name.

GitLode checks existing tags again before creating the tag.

Tag names are checked for case-insensitive duplicates and name-prefix conflicts before creation.

You cannot reuse a name queued for deletion on a configured remote until you undo or push the deletion.

Checking out a commit has a detached-HEAD confirmation: you will have no checked-out branch. Reset has these options:

| Option | Git reset mode |
| --- | --- |
| Keep Changes Staged | Soft |
| Keep Changes Unstaged | Mixed, the default |
| Discard Changes | Hard |

## Tags

Open Repository > Tags… to search tags, inspect their commits, and create or delete tags. You can manage existing lightweight and annotated tags. New tags are lightweight tags.

Click New Tag… to tag the current commit. Click Refresh Tags to reload local tags and check their status on the selected remote.

You can also delete a tag from the tagged commit's context menu. Deleting a tag does not delete the commit.

If a local tag differs from its remote version, Delete Tag… removes only the local version. Fetch again to get the remote version.

Select a tag marked Deleted on Remote and click Restore on Remote… to restore it explicitly. Existing local-only tags with no publication history are marked Not on Remote; click Push Tag… to publish one. Each action pushes only the selected tag.

Choose a remote to see pending additions and deletions. Click Push to send branch and tag changes. If no remote target branch is selected for that remote, click Push Tags to push only tag changes. You must confirm any remote tag deletions before the push. See [Sync branches](https://gitlode.com/docs/sync-branches) for push behavior.

To push a queued deletion by itself, select the tag and click Delete on Remote….

## File and stash actions

Right-click files to stage, unstage, open a diff, show file history, preview, save a version, or reveal them in Finder. Stage, Unstage, and Discard Changes are dimmed when the action does not apply to any selected file.

Before discarding, review the affected paths in the confirmation. For mixed selections, files are grouped by whether their unstaged changes will be discarded or they will be moved to the Trash. Discarding tracked changes restores the staged version; discarded untracked files go to the Trash.

In File History, right-click a revision and choose Copy File to copy that file version. The Edit menu label depends on focus: Copy Commit Hash for the main history list, Copy File for File History, and Copy for text controls.

Create a named stash to save tracked and untracked working files. Apply keeps the stash. Pop removes it after successful application. Stash, staging, and discard actions have no checkpoint Undo.

External diffs compare a historical file with its first parent, staged changes with HEAD, and unstaged changes with the staged version. Initial commits and untracked files use an empty baseline. To open an external diff, you need Full Git Integration.

## Activity and window actions

Open Activity with Command+0 for operation output, Retry, Undo, Redo, and available recovery controls. Use Check Remote State for an uncertain push result. See [Undo an operation](https://gitlode.com/docs/undo-an-operation).

Use Command+N for another workspace. Native window tabs and toolbar customization are available. Closing the last window leaves the app running; reopen it from the Dock. Quitting is blocked while tracked repository changes are active. A workspace-dependent preparation can be interrupted when its window closes.
