8

GitPython を使用していくつかの Python スクリプトを作成しようとしています。これを使用して、多くのブランチを管理するときに日常のタスクを簡素化できます。

また、複雑なスクリプトを作成することに関しては、Python についてはまったくの初心者です。

これは私が使用した API です: GitPython API doc

GitPython で次のように記述し、HEAD リモート ブランチが指していることを示す部分を解析したいと考えています。つまり、基本的に取得したいのはremotes/origin/HEAD

$ git branch -a
  master
* branch_to_remove
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/testing

API ドキュメントを何度も参照していますが、最初はこれらの API ドキュメントの Python 形式を理解するのに苦労しremote_headました。class git.refs.reference.Reference(repo, path, check_path=True)

しかし、それを呼び出す/初期化する方法さえ知りません。

これが私がこれまでに持っていたものであり、私が何をしようとしているのか、単純に「ブランチなし」状態にリセットして、現在のブランチを削除することがわかります。

import git
from git import *
repo = git.Repo("/some/path/testing")
repo.git.branch()
[some code to get the remotes/origin/HEAD, set it to remoteHeadBranch ]
repo.git.checkout(remoteHeadBranch)  # this should reset the Git back to 'no branch' state
repo.git.checkout(D="branch_to_remove")

どんな助けでも大歓迎です!

ありがとう。

4

3 に答える 3

4

このgitPythonについて疑問に思っていたあなたの質問を見たところです。本当に素晴らしいツールのようです。GitPythonのドキュメントでこの特定の質問を探していましたが、幸運ではありませんでしたが、githubで検索すると、そこに多くのテストが表示され、そのためのテスト。

「新しいブランチの削除」を検索すると、次のようなものが表示されます。

# remove new branch
Head.delete(new_remote_branch.repo, new_remote_branch)

GitPython リファレンス

于 2012-06-12T07:24:24.333 に答える
3

現在のブランチを印刷するには:

print(repo.head.ref)

支店を一覧表示するには

print [str(b) for b in repo.heads]

ブランチをチェックアウトするには

repo.heads[branch].checkout()

またrepo.git.checkout(branch)

ブランチを削除しようとしている場合は、別の LOCAL ブランチにいる必要があります。これはいくつかの方法で行うことができます

repo.heads['master'].checkout()

またはrepo.git.checkout('master') またはrepo.git.checkout('remotes/origin/master')

お役に立てれば

于 2015-04-17T03:29:45.870 に答える