Skip to content

Latest commit

 

History

History
93 lines (77 loc) · 2.1 KB

File metadata and controls

93 lines (77 loc) · 2.1 KB

libvcs.cmd.git

For git(1).

Compare to: fabtools.git, salt.modules.git, ansible.builtin.git

Manager/Cmd Pattern

libvcs provides a Manager/Cmd pattern for git subcommands:

  • Manager classes (git.branches, git.tags, etc.) handle collection-level operations
  • Cmd classes represent individual entities with mutation methods
Git instance
├── branches: GitBranchManager
│   ├── ls() -> QueryList[GitBranchCmd]
│   ├── get() -> GitBranchCmd
│   └── create()
├── tags: GitTagManager
├── remotes: GitRemoteManager
├── stashes: GitStashManager
├── worktrees: GitWorktreeManager
├── notes: GitNotesManager
├── submodules: GitSubmoduleManager
└── reflog: GitReflogManager

Quick Example

from libvcs.cmd.git import Git

git = Git(path='/path/to/repo')

# List all branches
branches = git.branches.ls()

# Filter to remote branches only
remote_branches = git.branches.ls(remotes=True)

# Get a specific branch and rename it
branch = git.branches.get(branch_name='old-name')
branch.rename('new-name')

# Create and manage tags
git.tags.create(name='v1.0.0', message='Release 1.0')
tag = git.tags.get(tag_name='v1.0.0')
tag.delete()
:caption: Subcommands
:maxdepth: 1

submodule
remote
stash
branch
tag
worktree
notes
reflog
.. automodule:: libvcs.cmd.git
   :members:
   :show-inheritance:
   :undoc-members:
   :exclude-members: GitSubmoduleCmd,
     GitSubmoduleManager,
     GitSubmodule,
     GitSubmoduleEntryCmd,
     GitRemoteCmd,
     GitRemoteManager,
     GitStashCmd,
     GitStashManager,
     GitStashEntryCmd,
     GitBranchCmd,
     GitBranchManager,
     GitTagCmd,
     GitTagManager,
     GitWorktreeCmd,
     GitWorktreeManager,
     GitNoteCmd,
     GitNotesManager,
     GitReflogEntry,
     GitReflogEntryCmd,
     GitReflogManager