Instalar git commit específico con pip


Respuestas:


281

Puede especificar commit hash, nombre de rama, etiqueta.

Para el nombre de la sucursal y la etiqueta, también puede instalar una distribución comprimida. Esto es más rápido y más eficiente, ya que no requiere clonar todo el repositorio. GitHub crea esos paquetes automáticamente.

picadillo:

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

nombre de sucursal

Con git

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

o del paquete fuente

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

etiqueta

con git

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

o del paquete fuente

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

No es una característica bien documentada, pero puede encontrar más información en https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Agregará este divertido mensaje:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean alguna idea sobre cómo decir pip ¿ES un compromiso? Esto se está superando en mi script de implementación y no quiero suprimir todo stderr.
Leonardo Arroyo

Si no especificas nada, ¿cuál es el comportamiento?
Scott Stafford

@ScottStafford No debe tener una rama / etiqueta que se llame como un mensaje de confirmación. Eso sería ... extraño.
Martin Thoma

Además, mencionaría una versión de git+comando HTTPS :pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf . Puede ser importante para las personas detrás de los proxies http corporativos.
grwlf

19

Un comentario adicional a la respuesta de @hugo-tavares:

Si es un repositorio privado de GitHub, deberá usar:

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

En tu caso:

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

12

Es posible instalar automáticamente un paquete de Python usando el archivo require.txt en su proyecto simplemente agregando la siguiente línea:

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

y ejecuta la línea de comando:

$ pip install -r requirements.txt


15
Para mí (pip 9.0.1 en python3.5 virtualenv) no funcionó: se pip install -r requirements.txtplanteó 'No se pudo detectar el nombre del requisito, especifique uno con # egg ='. Pero funcionó con el formato '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe

Debe usar este formato dentro del archivo require.txt. ¿Hiciste eso?
mannysz

Lo tengo funcionando pero esto no está claro. Necesita tener "nombre_paquete -e ..." y no solo "-e ..." al comienzo de la línea.
Udi

1

Si desea crear un paquete de huevo, aún puede usar el mismo apéndice @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.