Python を使用して git リポジトリの次の情報を取得するのに問題があります。
- このリポジトリのすべてのタグのリストを取得したいと思います。
- 別のブランチをチェックアウトし、ステージング用の新しいブランチも作成したいと考えています。
- 注釈付きタグでコミットにタグを付けたいと思います。
私はダルウィッチのドキュメントを調べましたが、それが機能する方法は非常に必要最小限のようです。使いやすい代替手段はありますか?
経由で git を呼び出しsubprocess
ます。私自身のプログラムの1つから:
def gitcmd(cmds, output=False):
"""Run the specified git command.
Arguments:
cmds -- command string or list of strings of command and arguments
output -- wether the output should be captured and returned, or
just the return value
"""
if isinstance(cmds, str):
if ' ' in cmds:
raise ValueError('No spaces in single command allowed.')
cmds = [cmds] # make it into a list.
# at this point we'll assume cmds was a list.
cmds = ['git'] + cmds # prepend with git
if output: # should the output be captured?
rv = subprocess.check_output(cmds, stderr=subprocess.STDOUT).decode()
else:
with open(os.devnull, 'w') as bb:
rv = subprocess.call(cmds, stdout=bb, stderr=bb)
return rv
いくつかの例:
rv = gitcmd(['gc', '--auto', '--quiet',])
outp = gitcmd('status', True)