2

gitpythonを使用してリポジトリがダーティかどうか、つまり、追跡されたファイルへの変更がコミットされていないかどうかを確認しようとすると、エラーが発生します。

import git
repo = git.Repo('')
print repo.is_dirty()

エラー:

Traceback (most recent call last):
  File "C:\dev\my_prog\test.py", line 8, in <module>
    print repo.is_dirty()
  File "C:\Python27\lib\site-packages\gitpython-0.3.2.rc1-py2.7.egg\git\repo\base.py", line 502, in is_dirty
    len(self.git.diff('HEAD', '--cached', *default_args)):
  File "C:\Python27\lib\site-packages\gitpython-0.3.2.rc1-py2.7.egg\git\cmd.py", line 227, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "C:\Python27\lib\site-packages\gitpython-0.3.2.rc1-py2.7.egg\git\cmd.py", line 456, in _call_process
    return self.execute(call, **_kwargs)
  File "C:\Python27\lib\site-packages\gitpython-0.3.2.rc1-py2.7.egg\git\cmd.py", line 377, in execute
    raise GitCommandError(command, status, stderr_value)
git.exc.GitCommandError: 'git diff HEAD --cached --abbrev=40 --full-index --raw' returned exit status 1:

どうして?何が問題なのですか?msysgit
を使用してWindows 7で作業していることに注意してください

4

3 に答える 3

1

gitpython と msysgit を更新してみてください。GitPython0.3.2 と msysgit 1.7.9 を使用している場合 -->repo.is_dirty()エラーを返します。GitPython 0.3.2 および msysgit 1.9.1 を使用している場合 -->repo.is_dirty()有効な値を返します。それが役に立てば幸い。

于 2014-08-29T11:33:06.423 に答える
0

私の場合、コマンド ラインで git を実行しようとしたところ、より具体的なエラーが発生しました。

>git diff HEAD --cached --abbrev=40 --full-index --raw
cannot spawn less: No such file or directory

msysgitのbinフォルダーをパスに入れることを解決しました:

>set PATH=C:\Program Files\Git\mingw64\bin;%PATH%

変数 GIT_PYTHON_GIT_EXECUTABLE https://github.com/gitpython-developers/GitPython/issues/26も設定したことに注意してくださいが、このエラーに関連しているとは思いません

于 2016-02-15T15:46:14.970 に答える