6

Python を使用して git リポジトリの次の情報を取得するのに問題があります。

  1. このリポジトリのすべてのタグのリストを取得したいと思います。
  2. 別のブランチをチェックアウトし、ステージング用の新しいブランチも作成したいと考えています。
  3. 注釈付きタグでコミットにタグを付けたいと思います。

私はダルウィッチのドキュメントを調べましたが、それが機能する方法は非常に必要最小限のようです。使いやすい代替手段はありますか?

4

3 に答える 3

1

経由で 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)
于 2013-04-09T18:44:00.853 に答える