diff --git a/docs/src/git.md b/docs/src/git.md index c18ce1d2bbf958f0f5988c9179fd7ff4276615cc..d56de998c9d1438a1bd160d7e577b146a4ea4da3 100644 --- a/docs/src/git.md +++ b/docs/src/git.md @@ -17,6 +17,7 @@ Here's an overview of all currently supported features: - Git status in the Project Panel - Branch creating and switching - Git blame viewing +- Git stash pop, apply, drop and view ## Git Panel @@ -74,6 +75,41 @@ Zed offers two commit textareas: As soon as you commit in Zed, in the Git Panel, you'll see a bar right under the commit textarea, which will show the recently submitted commit. In there, you can use the "Uncommit" button, which performs the `git reset HEADˆ--soft` command. +## Stashing + +Git stash allows you to temporarily save your uncommitted changes and revert your working directory to a clean state. This is particularly useful when you need to quickly switch branches or pull updates without committing incomplete work. + +### Creating Stashes + +To stash all your current changes, use the {#action git::StashAll} action. This will save both staged and unstaged changes to a new stash entry and clean your working directory. + +### Managing Stashes + +Zed provides a comprehensive stash picker accessible via {#action git::ViewStash}. From the stash picker, you can: + +- **View stash list**: Browse all your saved stashes with their descriptions and timestamps +- **Open diffs**: See exactly what changes are stored in each stash +- **Apply stashes**: Apply stash changes to your working directory while keeping the stash entry +- **Pop stashes**: Apply stash changes and remove the stash entry from the list +- **Drop stashes**: Delete unwanted stash entries without applying them + +### Quick Stash Operations + +For faster workflows, Zed provides direct actions to work with the most recent stash: + +- **Apply latest stash**: Use {#action git::StashApply} to apply the most recent stash without removing it +- **Pop latest stash**: Use {#action git::StashPop} to apply and remove the most recent stash + +### Stash Diff View + +When viewing a specific stash in the diff view, you have additional options available through the interface: + +- Apply the current stash to your working directory +- Pop the current stash (apply and remove) +- Remove the stash without applying changes + +To open the stash diff view, select a stash from the stash picker and use the {#action stash_picker::ShowStashItem} ({#kb stash_picker::ShowStashItem}) keybinding. + ## AI Support in Git Zed currently supports LLM-powered commit message generation. @@ -151,6 +187,10 @@ When viewing files with changes, Zed displays diff hunks that can be expanded or | {#action git::Switch} | {#kb git::Switch} | | {#action git::CheckoutBranch} | {#kb git::CheckoutBranch} | | {#action git::Blame} | {#kb git::Blame} | +| {#action git::StashAll} | {#kb git::StashAll} | +| {#action git::StashPop} | {#kb git::StashPop} | +| {#action git::StashApply} | {#kb git::StashApply} | +| {#action git::ViewStash} | {#kb git::ViewStash} | | {#action editor::ToggleGitBlameInline} | {#kb editor::ToggleGitBlameInline} | | {#action editor::ExpandAllDiffHunks} | {#kb editor::ExpandAllDiffHunks} | | {#action editor::ToggleSelectedDiffHunks} | {#kb editor::ToggleSelectedDiffHunks} |