remote¶
For git-remote(1).
Overview¶
Manage git remotes using GitRemoteManager (collection-level)
and GitRemoteCmd (per-remote operations).
Example¶
from libvcs.cmd.git import Git
git = Git(path='/path/to/repo')
# List all remotes
remotes = git.remotes.ls()
# Add a new remote
git.remotes.add(name='upstream', url='https://github.com/org/repo.git')
# Get a specific remote and operate on it
origin = git.remotes.get(remote_name='origin')
origin.show()
origin.prune()
origin.set_url('https://new-url.git')
API Reference¶
Bases:
objectTraverse and manage git remotes with ORM-like filtering via QueryList.
Wrap some of git-remote(1), git-checkout(1), manager.
Examples
>>> GitRemoteManager(path=tmp_path) <GitRemoteManager path=...>
>>> GitRemoteManager(path=tmp_path).run(check_returncode=False) 'fatal: not a git repository (or any of the parent directories): .git'
>>> GitRemoteManager( ... path=example_git_repo.path ... ).run() 'origin'
Run a command against a git repository’s remotes.
Wraps git remote.
Examples
>>> GitRemoteManager(path=example_git_repo.path).run() 'origin'
Git remote add.
Examples
>>> git_remote_repo = create_git_remote_repo() >>> GitRemoteManager(path=example_git_repo.path).add( ... name='my_remote', ... url=f'file://{git_remote_repo}' ... ) ''
Git remote show.
Examples
>>> GitRemoteManager(path=example_git_repo.path).show() 'origin'
For the example below, add a remote: >>> GitRemoteManager(path=example_git_repo.path).add( … name=’my_remote’, url=f’file:///dev/null’ … ) ‘’
Retrieve a list of remote names: >>> GitRemoteManager(path=example_git_repo.path).show().splitlines() [‘my_remote’, ‘origin’]
List remotes (raw output).
Examples
>>> GitRemoteManager(path=example_git_repo.path)._ls() 'origin\tfile:///... (fetch)\norigin\tfile:///... (push)'
- Return type:
List remotes.
Examples
>>> GitRemoteManager(path=example_git_repo.path).ls() [<GitRemoteCmd path=... remote_name=origin>]
For the example below, add a remote: >>> GitRemoteManager(path=example_git_repo.path).add( … name=’my_remote’, url=f’file:///dev/null’ … ) ‘’
>>> GitRemoteManager(path=example_git_repo.path).ls() [<GitRemoteCmd path=... remote_name=my_remote>, <GitRemoteCmd path=... remote_name=origin>]
- Return type:
Get remote via filter lookup.
Examples
>>> GitRemoteManager( ... path=example_git_repo.path ... ).get(remote_name='origin') <GitRemoteCmd path=... remote_name=origin>
>>> GitRemoteManager( ... path=example_git_repo.path ... ).get(remote_name='unknown') Traceback (most recent call last): exec(compile(example.source, filename, "single", ... return self.ls().get(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "..._internal/query_list.py", line ..., in get raise ObjectDoesNotExist libvcs._internal.query_list.ObjectDoesNotExist
- Parameters:
- Return type:
Get remotes via filter lookup.
Examples
>>> GitRemoteManager( ... path=example_git_repo.path ... ).filter(remote_name__contains='origin') [<GitRemoteCmd path=... remote_name=origin>]
>>> GitRemoteManager( ... path=example_git_repo.path ... ).filter(remote_name__contains='unknown') []
- Parameters:
- Return type:
Bases:
objectRun git commands targeting a specific remote.
Lite, typed, pythonic wrapper for git-remote(1).
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ) <GitRemoteCmd path=... remote_name=...>
>>> GitRemoteCmd( ... path=tmp_path, ... remote_name='origin', ... ).run(verbose=True) 'fatal: not a git repository (or any of the parent directories): .git'
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).run(verbose=True) 'origin\tfile:///...'
Run command against a git remote.
Wraps git remote.
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='master', ... ).run() 'origin' >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='master', ... ).run(verbose=True) 'origin\tfile:///...'
Git remote rename.
Examples
>>> git_remote_repo = create_git_remote_repo() >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).rename(old='origin', new='new_name') '' >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).run() 'new_name'
Git remote remove.
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).remove() '' >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).run() ''
Git remote show.
Examples
>>> print( ... GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin', ... ).show() ... ) * remote origin Fetch URL: ... Push URL: ... HEAD branch: master Remote branch: master tracked...
Git remote prune.
Examples
>>> git_remote_repo = create_git_remote_repo() >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).prune() ''
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).prune(dry_run=True) ''
Git remote get-url.
Examples
>>> git_remote_repo = create_git_remote_repo() >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).get_url() 'file:///...'
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).get_url(push=True) 'file:///...'
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).get_url(_all=True) 'file:///...'
Git remote set-url.
Examples
>>> git_remote_repo = create_git_remote_repo() >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_url( ... url='http://localhost' ... ) ''
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_url( ... url='http://localhost', ... push=True ... ) ''
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_url( ... url='http://localhost', ... add=True ... ) ''
>>> current_url = GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).get_url() >>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_url( ... url=current_url, ... delete=True ... ) 'fatal: Will not delete all non-push URLs'
Git remote set-branches.
Configure remote tracking branches for the remote.
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_branches('master') ''
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_branches('master', 'develop', add=True) ''
Git remote set-head.
Set or delete the default branch (HEAD) for the remote.
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_head(auto=True) 'origin/HEAD set to master'
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).set_head('master') ''
Git remote update.
Fetch updates for the remote.
Examples
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).update() 'Fetching origin...'
>>> GitRemoteCmd( ... path=example_git_repo.path, ... remote_name='origin' ... ).update(prune=True) 'Fetching origin...'