All toolsWhat would you like to do? Show working-tree status Undo last commit — keep changes staged Delete a merged local branch Stash tracked changes with a message Push current HEAD and set upstream
CategoryAll Start & configure Inspect & search Stage & commit Branches Remotes & sync Undo & recover Merge & rebase Stash Tags Cherry-pick Worktrees Submodules Sparse checkout Bisect & maintenance TaskInitialize a repository on main Initialize a bare repository Clone a repository Clone only the latest history Clone one branch Set repository-local author name Set repository-local author email Set global author name Set global author email Show configuration and its source Set the default initial branch to main Require fast-forward pulls in this repository Use input-style line-ending normalization for this repository Show working-tree status Show compact status and branch Show the branch history graph Show recent commits Inspect a commit and its patch Show unstaged changes Show staged changes Show a summary of unstaged changes Compare two revisions Inspect changes to one literal path Follow a file through renames Show who last changed each line List tracked files Explain why a path is ignored Show recent local reference movements Find commits by a literal message substring Find commits by author email Search tracked text literally List commits in one revision but not another Compare divergent histories Find a common ancestor Summarize commit authors Show the repository root Show the upstream tracking branch Inspect the parents of a commit Stage all changes Stage a file or directory literally Stage selected hunks interactively Mark a new path for later patch staging Unstage everything, keep working files Unstage a path, keep its working changes Commit staged changes with a message Commit using your configured editor Commit modified/deleted tracked files Change the last commit message Add staged changes to the last commit Create a fixup commit Create a signed commit List local branches List local and remote-tracking branches Show the current branch name Create and switch to a new branch Create a branch from a revision Create a branch without switching Switch to an existing branch Switch to the previous checkout Rename the current branch Rename a named local branch Delete a merged local branch Force-delete a local branch pointer List branches merged into a revision List branches not merged into a revision Create a local branch tracking a remote branch Set the current branch upstream Remove the current branch upstream List remote URLs Add a remote Change a remote URL Rename a remote Remove remote configuration Fetch a remote Fetch all remotes and prune stale tracking refs Fetch remote tags Convert a shallow clone to full history Pull with fast-forward only Pull and rebase local commits Push current HEAD and set upstream Push a named branch and set upstream Preview a push of the current branch Replace a remote branch with lease protection Delete a hosted remote branch Preview stale remote-tracking ref cleanup Prune stale remote-tracking refs List hosted remote branch references Undo last commit — keep changes staged Undo last commit — keep changes unstaged Undo a commit with a new revert commit Revert the latest non-merge commit Revert a merge using an explicit mainline parent Discard unstaged changes to a path Discard all unstaged tracked changes Restore a path from a revision Hard-reset to a revision Preview untracked files/directories to remove Delete untracked files and directories Preview ignored files/directories to remove Delete ignored files and directories Create a recovery branch from a known commit Inspect a revision with detached HEAD Merge a branch or revision Merge and always create a merge commit Merge only if fast-forward is possible Prepare a squash merge without committing Continue a resolved merge Abort an in-progress merge Rebase current branch onto a revision Interactively rebase recent commits Interactively autosquash fixup commits Continue a resolved rebase Skip the current rebase patch Abort an in-progress rebase Stash tracked changes with a message Stash tracked and untracked changes List saved stashes Inspect a stash patch Apply a stash and retain it Apply a stash including its staged state Apply and remove a stash after success Create a branch from a stash Delete a specific stash entry Delete all saved stashes List tags by version Create an annotated tag Create a lightweight tag Create a signed annotated tag Delete a local tag Publish one tag Publish all local tags Delete a hosted remote tag Cherry-pick a commit Apply a commit without committing Continue a resolved cherry-pick Skip the current cherry-pick Abort a cherry-pick sequence Continue a resolved revert Abort a revert sequence List linked worktrees Add a worktree with a new branch Add a worktree for an existing branch Remove a clean linked worktree Preview stale worktree cleanup Prune stale worktree records Lock a worktree against pruning/moving Unlock a linked worktree Show submodule status Initialize and update submodules recursively Add a repository as a submodule Synchronize submodule URLs Update submodules to configured remote branches Deinitialize a clean submodule List sparse-checkout directories Enable cone-mode sparse checkout Set the sparse-checkout directory selection Add a directory to sparse checkout Restore a full working-tree checkout Start bisect with HEAD bad and a known-good revision Mark the current bisect revision good Mark the current bisect revision bad Skip an untestable bisect revision Finish bisect and restore the original checkout Show repository object storage size Check object integrity Run normal repository housekeeping Export a revision as a ZIP snapshot Create a portable full-history Git bundle Verify a Git bundle file Export a commit range as patch files
Read / inspect Shows staged, unstaged and untracked changes.
Show working-tree status TerminalBash / POSIX PowerShell 7.3+ git statusReplace example values and review before running. Requires Git and the right repository, permissions and version. PowerShell uses modern native argument passing; Windows cmd.exe is unsupported.
How to use Git Command Generator Search a task or choose a category and command. Replace example parameters and choose your terminal shell. Read the warning, then copy and review the command before running it. Read the detailed guide → Useful things to know Commands are generated but never executed by this tool. Repository state, Git version, permissions and conflicts can affect results. Bash/POSIX and PowerShell 7.3+ quoting are supported, not Windows cmd.exe.