GitPython을 사용하여 저장소에 대해 몇 가지 간단한 명령을 실행하고 있습니다. 기본적으로 대부분은 다음과 같습니다.
repo = Repo(repo_dir)
repo.git.fetch()
result = repo.git.diff("origin", name_only=True)
repo.git.merge()
# ...
실행되는 명령을 출력 / 기록하고 생성 된 원시 출력을 표시하도록 GitPython을 설정하는 방법이 있습니까?
예를 들어, 위의 내용은 다음과 같은 내용이 될 것으로 예상합니다.
$ git fetch
$ git diff --name-only origin
path/to/differing_file
path/to/another/differing_file
$ git merge
GitPython
모듈을 사용합니다 logging
. logging.basicConfig(level=logging.DEBUG)
코드 앞에 추가하면 다음과 같은 로그가 인쇄됩니다.
DEBUG:git.cmd:Popen(['git', 'fetch'], cwd=E:\path\foo, universal_newlines=False, shell=None)
예상대로 형식화 된 로그를 인쇄하려면 GitPython
의 소스 코드를 수정할 수 있습니다. 저는 Python 2.7을 사용하고 GitPython
있으며 C:\Python27\lib\site-packages\git
. git.__file__
REPL에서 실행 하여 설치 디렉토리를 찾을 수 있습니다. 파일 C:\Python27\lib\site-packages\git\cmd.py
에서 방법을 찾을 수 있습니다 def execute
. subprocess.Popen
명령을 실행하도록 호출 합니다. 당신은 라인을 수정할 수 있습니다 log.debug
전에 Popen
하거나 삽입 print(' '.join(cmd))
적당한 선에서. Python 3.3 이상을 사용하는 경우 .NET으로 명령을 인쇄하는 방법에 대한 이 답변 을 참조 할 수도 있습니다 subprocess
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다