gitpython - толкать тайник с сообщением - PullRequest
1 голос
/ 15 апреля 2019

Я новичок в gitpython и хочу использовать его для создания тайника с конкретным сообщением. Я знаю, что синтаксис командной строки для этого git stash push -m "descriptive message here", но я не могу получить ту же команду для работы с gitpython. Согласно документации развернутых команд , похоже, что приведенный ниже код должен быть возможен

import git

repo = git.Repo('/path/to/my/repo')
repo.git.stash('push -m "descriptive message here")

Однако происходит сбой со следующей ошибкой

Traceback (most recent call last):
  File "/home/addison/miniconda3/envs/openalpr/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-28-827e00236a8a>", line 1, in <module>
    repo.git.stash('push -m "descriptive message here"')
  File "/home/addison/miniconda3/envs/openalpr/lib/python3.6/site-packages/git/cmd.py", line 548, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/home/addison/miniconda3/envs/openalpr/lib/python3.6/site-packages/git/cmd.py", line 1014, in _call_process
    return self.execute(call, **exec_kwargs)
  File "/home/addison/miniconda3/envs/openalpr/lib/python3.6/site-packages/git/cmd.py", line 825, in execute
    raise GitCommandError(command, status, stderr_value, stdout_value)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git stash push -m "descriptive message here"
  stderr: 'usage: git stash list [<options>]
   or: git stash show [<stash>]
   or: git stash drop [-q|--quiet] [<stash>]
   or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
   or: git stash branch <branchname> [<stash>]
   or: git stash save [--patch] [-k|--[no-]keep-index] [-q|--quiet]
              [-u|--include-untracked] [-a|--all] [<message>]
   or: git stash [push [--patch] [-k|--[no-]keep-index] [-q|--quiet]
               [-u|--include-untracked] [-a|--all] [-m <message>]
               [-- <pathspec>...]]
   or: git stash clear'

Если я скопирую текст cmdline из сообщения об ошибке и вставлю его в терминал, он будет работать как положено

1 Ответ

1 голос
/ 25 апреля 2019

Попробуйте repo.git.stash('push', '-m', 'descriptive message here').

...