Installa git commit specifico con pip


Risposte:


281

È possibile specificare hash di commit, nome ramo, tag.

Per il nome del ramo e il tag, puoi anche installare una distribuzione compressa. Questo è più veloce ed efficiente, in quanto non richiede la clonazione dell'intero repository. GitHub crea automaticamente questi pacchetti.

hash:

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

branch-name

Con idiota

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

o dal pacchetto sorgente

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

etichetta

con git

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

o dal pacchetto sorgente

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

È una funzionalità non ben documentata, ma puoi trovare maggiori informazioni su https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Aggiungerà questo divertente messaggio:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean qualche idea su come dire a pip IT È un impegno? Questo viene generato sul mio script deploy e non voglio sopprimere tutti gli standard.
Leonardo Arroyo,

Se non si specifica nulla, qual è il comportamento?
Scott Stafford,

@ScottStafford Non dovresti avere un ramo / tag chiamato come un messaggio di commit. Sarebbe ... strano.
Martin Thoma,

Inoltre vorrei menzionare una versione HTTPS di git+comando: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Può essere importante per le persone dietro i proxy http aziendali.
grwlf,

19

Un commento in più alla risposta di @ hugo-tavares:

Se si tratta di un repository GitHub privato, dovrai utilizzare:

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

Nel tuo caso:

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

12

È possibile installare automaticamente un pacchetto python usando il file requisito.txt sul progetto semplicemente aggiungendo la seguente riga:

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

ed esegui la riga di comando:

$ pip install -r requirements.txt


15
Per me (pip 9.0.1 in python3.5 virtualenv) non ha funzionato: pip install -r requirements.txtalzato 'Impossibile rilevare il nome del requisito, specificarne uno con # egg ='. Ma ha funzionato con il formato '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe,

È necessario utilizzare questo formato all'interno del file requisito.txt. Sei stato tu?
mannysz,

Ho funzionato ma questo non è chiaro. Devi avere "nome_pacchetto -e ..." e non solo "-e ..." all'inizio della riga.
Udi,

1

Se vuoi creare un pacchetto uovo, puoi comunque usare la stessa appendice @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.