stash¶

For git-stash(1).

Overview¶

Manage git stashes using GitStashManager (collection-level) and GitStashEntryCmd (per-stash operations).

Note

GitStashCmd is the legacy interface. Use git.stashes (GitStashManager) for the new Manager/Cmd pattern.

Examples¶

Stash work in progress, inspect it, restore it, then clear the stash list:

>>> from libvcs.cmd.git import Git
>>> git = Git(path=example_git_repo.path)
>>> _ = (example_git_repo.path / 'testfile.test').write_text('wip', encoding='utf-8')
>>> git.stashes.push(message='Work in progress')
'Saved working directory and index state ...'
>>> stashes = git.stashes.ls()
>>> len(stashes)
1
>>> stash = git.stashes.get(index=0)
>>> stash.show()
'...testfile.test...'
>>> stash.apply()
'...'
>>> git.stashes.clear()
''

API Reference¶

class libvcs.cmd.git.GitStashManager
¶
class libvcs.cmd.git.GitStashManager
¶

Bases: object

Traverse git stashes with QueryList.

class libvcs.cmd.git.GitStashEntryCmd
¶
class libvcs.cmd.git.GitStashEntryCmd
¶

Bases: object

Run git commands targeting a specific stash entry.

class libvcs.cmd.git.GitStashCmd
¶
class libvcs.cmd.git.GitStashCmd
¶

Bases: object

Run git stash commands (low-level, use GitStashManager).