> ## Documentation Index
> Fetch the complete documentation index at: https://2026commitplusinc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Drag and Drop

> Current and planned Git actions by dragging commits, branches, files, and stashes.

Commit+ is being built toward a direct manipulation model for Git: drag the thing you want to act on, drop it where the action should happen, confirm, and let the app keep the repository state visible.

## Drag to cherry-pick

<video
  controls
  src="https://mintcdn.com/2026commitplusinc/OlGhH2PWWQXoSXQe/showcase/drag-commit-cherry-pick.mp4?fit=max&auto=format&n=OlGhH2PWWQXoSXQe&q=85&s=530bdc3e20942dd1b8a306e9ce708e33"
  autoPlay
  muted
  loop
  playsInline
  preload="auto"
  disablePictureInPicture
  aria-label="Drag commit cherry pick"
  style={{
width: "100%",
aspectRatio: "2500 / 1156",
borderRadius: "8px",
display: "block",
backgroundColor: "#f3f4f6",
}}
  data-path="showcase/drag-commit-cherry-pick.mp4"
/>

Drag selected commit(s) onto the current branch to cherry-pick them. This is the fastest direct-manipulation flow currently available in the page.

## Drag a commit to create a branch

<video
  controls
  src="https://mintcdn.com/2026commitplusinc/tJVMR6e7fBCffEaf/showcase/drag-n-drop/drag-to-create-new-branch.mp4?fit=max&auto=format&n=tJVMR6e7fBCffEaf&q=85&s=96222cf2b959a5ba11bb851b7006a646"
  autoPlay
  muted
  loop
  playsInline
  preload="auto"
  disablePictureInPicture
  aria-label="Drag a commit onto the Branches header to create a branch"
  style={{
width: "100%",
aspectRatio: "2498 / 1428",
borderRadius: "8px",
display: "block",
backgroundColor: "#f3f4f6",
}}
  data-path="showcase/drag-n-drop/drag-to-create-new-branch.mp4"
/>

Drag one commit from the history graph onto the Branches header to create a new branch starting at that commit. This keeps the history action visual and avoids dropping into a separate modal first.

## Drag a branch to create a branch

<video
  controls
  src="https://mintcdn.com/2026commitplusinc/tJVMR6e7fBCffEaf/showcase/drag-n-drop/drag-to-create-branch.mov?fit=max&auto=format&n=tJVMR6e7fBCffEaf&q=85&s=81ff05b00a508a681ff44d5054500b82"
  autoPlay
  muted
  loop
  playsInline
  preload="auto"
  disablePictureInPicture
  aria-label="Drag a branch onto the Branches header to base a new branch on it"
  style={{
width: "100%",
aspectRatio: "2500 / 1156",
borderRadius: "8px",
display: "block",
backgroundColor: "#f3f4f6",
}}
  data-path="showcase/drag-n-drop/drag-to-create-branch.mov"
/>

Drag an existing branch onto the Branches header to create a new branch based on it. The source branch acts as the base, so the new branch points at the same tip and inherits the history.

## Drag to merge

<video
  controls
  src="https://mintcdn.com/2026commitplusinc/tJVMR6e7fBCffEaf/showcase/drag-n-drop/drag-to-merge.mov?fit=max&auto=format&n=tJVMR6e7fBCffEaf&q=85&s=6b3297156560b2767f0324118ae51d3a"
  autoPlay
  muted
  loop
  playsInline
  preload="auto"
  disablePictureInPicture
  aria-label="Drag a branch onto the current branch to merge"
  style={{
width: "100%",
aspectRatio: "2500 / 1156",
borderRadius: "8px",
display: "block",
backgroundColor: "#f3f4f6",
}}
  data-path="showcase/drag-n-drop/drag-to-merge.mov"
/>

Drag a branch onto the current branch to merge it. The drop target is the current branch itself, so you can see exactly which branch is being merged into before confirming.

## Drag to push to origin

<video
  controls
  src="https://mintcdn.com/2026commitplusinc/tJVMR6e7fBCffEaf/showcase/drag-n-drop/drag-to-push-origin.mov?fit=max&auto=format&n=tJVMR6e7fBCffEaf&q=85&s=319fa1cca177a907ca5bde9f58897683"
  autoPlay
  muted
  loop
  playsInline
  preload="auto"
  disablePictureInPicture
  aria-label="Drag a branch onto origin to push it"
  style={{
width: "100%",
aspectRatio: "2500 / 1156",
borderRadius: "8px",
display: "block",
backgroundColor: "#f3f4f6",
}}
  data-path="showcase/drag-n-drop/drag-to-push-origin.mov"
/>

Drag a branch onto the origin remote to publish it. This turns pushing into a direct-manipulation action: the branch is the thing you move, the remote is the drop target.

## Also available now

* Hold `⌥` while dragging a branch onto the current branch to rebase instead of merge.

## Roadmap direction

* Reorder, squash, and fixup commits with direct history manipulation.
* Revert commits with a drag modifier.
* Pull branches through remote drop targets.
* Stage, unstage, stash, and apply files through file and stash drop targets.

These broader workflows remain product direction until their drop targets are exposed and tested in the app.
