1. ホーム
  2. python

[解決済み] Pythonから'git pull'を呼び出すにはどうしたらいいですか?

2023-03-25 10:18:21

質問

githubのwebhooksを使って、リモートの開発サーバーに変更を取り込めるようにしたいです。現時点では、適切なディレクトリにあるときに git pull は、必要なすべての変更を取得します。しかし、私はPythonの中からその関数を呼び出す方法を見つけ出すことができません。私は以下を試しました。

import subprocess
process = subprocess.Popen("git pull", stdout=subprocess.PIPE)
output = process.communicate()[0]

しかし、これは次のようなエラーになります。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Pythonの中からこのbashコマンドを呼び出す方法はありますか?

どのように解決するのですか?

GitPythonを使うことを検討したことはありますか?これは、あなたのためにこのすべてのナンセンスを処理するように設計されています。

import git 

g = git.cmd.Git(git_dir)
g.pull()

https://github.com/gitpython-developers/GitPython