feat: add git stash management

Add a Stashes dialog with create, apply, pop, and drop actions
Include untracked files automatically when stashing
Show file counts for current changes and stash entries
This commit is contained in:
Bohdan Triapitsyn
2026-05-05 23:39:20 +03:00
parent c80c2b62a8
commit 93267927ff
19 changed files with 754 additions and 109 deletions
+28
View File
@@ -518,6 +518,34 @@ export const dict: Record<I18nKey, string> = {
'gitView.stash.stepStash': '커밋하지 않은 변경 사항 stash',
'gitView.stash.thisWill': '다음 작업을 수행합니다:',
'gitView.stash.title': '커밋하지 않은 변경 사항',
'gitView.stashes.actions.apply': 'Apply',
'gitView.stashes.actions.drop': 'Drop',
'gitView.stashes.actions.pop': 'Pop',
'gitView.stashes.actions.stashCurrent': 'Stash current changes',
'gitView.stashes.actions.stashCurrentWithCount': 'Stash {count} files',
'gitView.stashes.confirm.drop': 'Drop {ref}?',
'gitView.stashes.description': 'Save, restore, and clean up Git stashes for this repository.',
'gitView.stashes.empty.list': 'No stashes yet.',
'gitView.stashes.empty.search': 'No matching stashes.',
'gitView.stashes.includeUntrackedHint': 'Untracked files are included automatically.',
'gitView.stashes.fileCount': '{count} files',
'gitView.stashes.fileCountLoading': 'counting files...',
'gitView.stashes.itemNumber': '#{number}',
'gitView.stashes.latestLabel': 'Latest',
'gitView.stashes.messagePlaceholder': 'Stash name',
'gitView.stashes.searchPlaceholder': 'Search stashes',
'gitView.stashes.title': 'Stashes',
'gitView.stashes.toast.applyFailed': 'Failed to apply stash',
'gitView.stashes.toast.applySuccess': 'Stash applied',
'gitView.stashes.toast.createFailed': 'Failed to stash changes',
'gitView.stashes.toast.created': 'Changes stashed',
'gitView.stashes.toast.dropFailed': 'Failed to drop stash',
'gitView.stashes.toast.dropSuccess': 'Stash dropped',
'gitView.stashes.toast.loadFailed': 'Failed to load stashes',
'gitView.stashes.toast.noChanges': 'No local changes to stash',
'gitView.stashes.toast.popFailed': 'Failed to pop stash',
'gitView.stashes.toast.popSuccess': 'Stash popped',
'gitView.stashes.untitled': 'Untitled stash',
'gitView.sync.fetch': '가져오기',
'gitView.sync.fetchFromRemote': '{name}에서 가져오기',
'gitView.sync.fetchTooltip': '리모트에서 가져오기',