21

現在の git-repo の変更されたファイルのリストを取得したい。通常、 をChanges not staged for commit:呼び出したときに下にリストされるファイルgit status

これまでのところ、リポジトリに接続し、プルして、追跡されていないすべてのファイルを表示することができました。

from git import Repo
repo = Repo(pk_repo_path)
o = self.repo.remotes.origin
o.pull()[0]
print(repo.untracked_files)

しかし、今は変更がある (コミットされていない) すべてのファイルを表示したいと考えています。誰かが私を正しい方向に押し進めることができますか? のメソッドの名前を見てrepo、しばらく実験しましたが、正しい解決策が見つかりません。

明らかにrepo.git.status、ファイルを呼び出して解析することはできますが、それはまったくエレガントではありません。もっと良いものがあるはずです。


編集:今考えてみると。より便利なのは、単一のファイルのステータスを教えてくれる関数です。お気に入り:

print(repo.get_status(path_to_file))
>>untracked
print(repo.get_status(path_to_another_file))
>>not staged
4

2 に答える 2