Python Gitモジュールの経験はありますか?[closed] 質問する

Python Gitモジュールの経験はありますか?[closed] 質問する

Python 用の Git モジュールについて、皆さんはどのような経験をされていますか? (GitPython、PyGit、Dulwich は知っていますが、他にもご存知の場合は遠慮なく教えてください。)

私は Git リポジトリとやり取り (追加、削除、コミット) するプログラムを作成していますが、Git の経験がないため、Git に関して使いやすさと理解のしやすさを求めています。

私が主に興味を持っている他の点は、ライブラリの成熟度と完全性、バグの少なさ、継続的な開発、ドキュメントと開発者の有用性です。

他に知りたいことや知っておく必要があることがあれば、遠慮なくお知らせください。

ベストアンサー1

この質問は少し前にされたので、その時点でのライブラリの状態はわかりませんが、検索する人にとっては、GitPython はコマンドライン ツールをうまく抽象化しているので、サブプロセスを使用する必要がないことは言及する価値があります。使用できる便利な組み込みの抽象化がいくつかありますが、他のすべてについては次のようにすることができます。

import git
repo = git.Repo( '/home/me/repodir' )
print repo.git.status()
# checkout and track a remote branch
print repo.git.checkout( 'origin/somebranch', b='somebranch' )
# add a file
print repo.git.add( 'somefile' )
# commit
print repo.git.commit( m='my commit message' )
# now we are one commit ahead
print repo.git.status()

GitPython のその他の機能は、操作を簡単にするだけです。私はこのライブラリにかなり満足しており、基礎となる git ツールのラッパーであることに感謝しています。

アップデート: 私は、git だけでなく、Python で必要なほとんどのコマンドライン ユーティリティにも sh モジュールを使用するように切り替えました。上記を再現するには、代わりに次のようにします。

import sh
git = sh.git.bake(_cwd='/home/me/repodir')
print git.status()
# checkout and track a remote branch
print git.checkout('-b', 'somebranch')
# add a file
print git.add('somefile')
# commit
print git.commit(m='my commit message')
# now we are one commit ahead
print git.status()

おすすめ記事