pip로 특정 git commit 설치


답변:


281

커밋 해시, 분기 이름, 태그를 지정할 수 있습니다.

분기 이름 및 태그의 경우 압축 배포를 설치할 수도 있습니다. 전체 리포지토리를 복제 할 필요가 없기 때문에 더 빠르고 효율적입니다. GitHub는 해당 번들을 자동으로 생성합니다.

해시시:

$ pip install git+git://github.com/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

지점명

자식으로

$ pip install git+git://github.com/aladagemre/django-notification.git@cool-feature-branch

또는 소스 번들에서

$ pip install https://github.com/aladagemre/django-notification/archive/cool-feature-branch.tar.gz

꼬리표

자식과 함께

$ pip install git+git://github.com/aladagemre/django-notification.git@v2.1.0

또는 소스 번들에서

$ pip install https://github.com/aladagemre/django-notification/archive/v2.1.0.tar.gz

잘 문서화 된 기능은 아니지만 https://pip.pypa.io/en/latest/reference/pip_install.html#git 에서 자세한 정보를 찾을 수 있습니다.


24
그것은이 재미있는 메시지를 추가합니다 :Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
블라드 - ardelean

10
@ vlad-ardelean pip IT에게 커밋을 알리는 방법에 대한 아이디어가 있습니까? 이것은 내 배포 스크립트에서 출력되며 모든 stderr을 억제하고 싶지 않습니다.
Leonardo Arroyo

아무것도 지정하지 않으면 동작은 무엇입니까?
Scott Stafford

@ScottStafford 커밋 메시지처럼 호출되는 분기 / 태그가 없어야합니다. 그것은 ... 이상 할 것입니다.
Martin Thoma 2012 년

또한 HTTPS 버전의 git+명령에 대해서도 언급합니다 pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. 회사 http 프록시 뒤에있는 사람들에게 중요 할 수 있습니다.
grwlf

19

@ hugo-tavares의 답변에 대한 추가 의견 :

비공개 GitHub 리포지토리 인 경우 다음을 사용해야합니다.

pip install git+ssh://git@github.com/....

귀하의 경우 :

pip install git+ssh://git@github.com/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

12

다음 줄을 추가하기 만하면 프로젝트에서 requirements.txt 파일을 사용하여 파이썬 패키지를 자동으로 설치할 수 있습니다.

-e git+https://github.com/owner/repository.git@branch_or_commit

명령 행을 실행하십시오.

$ pip install -r requirements.txt


15
나를 위해 (python3.5 virtualenv의 pip 9.0.1) 작동하지 않았습니다. pip install -r requirements.txt제기 '요구 사항 이름을 찾을 수 없습니다. # egg =로 이름을 지정하십시오.' 그러나 '-e git + github.com/owner/repository.git#egg=branch_or_commit ' 형식으로 작업했습니다
Edouard Berthe

requirements.txt 파일 내에서이 형식을 사용해야합니다. 네가 했니?
mannysz

나는 그것을 작동 시키지만 이것은 확실하지 않다. 줄의 시작 부분에 "-e ..."뿐만 아니라 "package_name -e ..."가 있어야합니다.
Udi

1

에그 패키지를 작성하려는 경우에도 동일한 @branch_or_commit 부속기를 사용할 수 있습니다. pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.