1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Interactively Checkout Specific Files From A Stash as a Git TIL

This commit is contained in:
jbranchaud
2024-02-24 17:47:19 -06:00
parent a83ce7cc10
commit 5e68fb8c64
2 changed files with 20 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
_1377 TILs and counting..._
_1378 TILs and counting..._
---
@@ -291,6 +291,7 @@ _1377 TILs and counting..._
- [Include Or Exclude Remaining Patch Changes](git/include-or-exclude-remaining-patch-changes.md)
- [Include Some Stats In Your Git Log](git/include-some-stats-in-your-git-log.md)
- [Intent To Add](git/intent-to-add.md)
- [Interactively Checkout Specific Files From A Stash](git/interactively-checkout-specific-files-from-a-stash.md)
- [Interactively Unstage Changes](git/interactively-unstage-changes.md)
- [Keep File Locally With `git rm`](git/keep-file-locally-with-git-rm.md)
- [Last Commit A File Appeared In](git/last-commit-a-file-appeared-in.md)

View File

@@ -0,0 +1,18 @@
# Interactively Checkout Specific Files From A Stash
This command will prompt you with a list of the stashes in your current git
repo. Once you select one of them from the interactive fzf prompt, you will
then be prompted with another fzf prompt, this second one allow multi-select.
From there you can tab select the files you want to checkout. Once you've
marked the ones you want, hit enter and those files will be checked out to your
index.
```bash
git stash show --name-only $(
git stash list \
| fzf --height=20% --reverse \
| sed 's/:.*//'
) \
| fzf --height=20% --multi --sync \
| xargs -I {} sh -c 'git checkout stash@{0} -- {}'
```