Quando corro:
git push origin branchname
Che cos'è esattamente origin
e perché devo digitarlo prima del nome del ramo?
Quando corro:
git push origin branchname
Che cos'è esattamente origin
e perché devo digitarlo prima del nome del ramo?
Risposte:
origin
è un alias sul tuo sistema per un particolare repository remoto. In realtà non è una proprietà di quel repository.
Facendo
git push origin branchname
stai dicendo di spingere nel origin
repository. Non è necessario nominare il repository remoto origin
: in effetti lo stesso repository potrebbe avere un alias diverso per un altro sviluppatore.
I telecomandi sono semplicemente un alias che memorizza l'URL dei repository. Puoi vedere quale URL appartiene a ciascun telecomando usando
git remote -v
Nel push
comando puoi usare i telecomandi oppure puoi semplicemente usare direttamente un URL . Un esempio che utilizza l'URL:
git push git@github.com:git/git.git master
git push
puoi vedere che controlla prima la configurazione di quel repository (che puoi controllare git config --list
) per una chiave chiamata branch.<branchname>.remote
. Se non impostato, "l'impostazione predefinita è origin" - git-scm.com/docs/git-push
origin
non è il nome del repository remoto. È piuttosto un alias locale impostato come chiave al posto dell'URL del repository remoto.
Evita che l'utente debba digitare l'intero URL remoto quando richiede un push.
Questo nome è impostato di default e per convenzione da Git quando si clona per la prima volta da un telecomando.
Questo nome alias non è codificato e può essere modificato utilizzando il seguente prompt dei comandi:
git remote rename origin mynewalias
Dai un'occhiata a http://git-scm.com/docs/git-remote per ulteriori chiarimenti.
Git ha il concetto di "telecomandi", che sono semplicemente URL di altre copie del tuo repository. Quando cloni un altro repository, Git crea automaticamente un nome remoto "origine" e lo indica.
È possibile visualizzare ulteriori informazioni sul telecomando digitando git remote show origin
.
git remote show origin
, perché non semplicemente git show origin
? Ci deve essere una ragione, che cos'è? Grazie.
origin
è l' alias predefinito dell'URL del repository remoto.
Semplice! "origine" è proprio quello che hai soprannominato il tuo repository remoto quando hai eseguito un comando come questo:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
Da quel momento in poi Git sa che "origine" punta a quel repository specifico (in questo caso un repository GitHub). Avresti potuto chiamarlo "github" o "repo" o come desideri.
Sono stato anche confuso da questo, e di seguito è quello che ho imparato.
Quando si clona un repository, ad esempio da GitHub:
origin
è l'alias per l'URL da cui è stato clonato il repository. Si noti che è possibile modificare questo alias.
C'è un master
ramo nel repository remoto (aliasato da origin
). C'è anche un altro master
ramo creato localmente.
Ulteriori informazioni possono essere trovate da questa domanda SO: Git branching: master vs. origin / master vs. remote / origin / master
Quando si clona un repository con git clone
, crea automaticamente una connessione remota chiamata che origin
punta al repository clonato. Ciò è utile per gli sviluppatori che creano una copia locale di un repository centrale poiché fornisce un modo semplice per eseguire il pull up delle modifiche o pubblicare commit locali. Questo comportamento è anche il motivo per cui la maggior parte dei progetti basati su Git chiama l'origine del repository centrale.
La migliore risposta qui:
https://www.git-tower.com/learn/git/glossary/origin
In Git, "origine" è un nome abbreviato per il repository remoto da cui un progetto è stato originariamente clonato. Più precisamente, viene utilizzato al posto dell'URL del repository originale e quindi rende molto più semplice il riferimento.
Da https://www.git-tower.com/learn/git/glossary/origin :
In Git, "origine" è un nome abbreviato per il repository remoto da cui un progetto è stato originariamente clonato. Più precisamente, viene utilizzato al posto dell'URL del repository originale e quindi rende molto più semplice il riferimento.
Nota che l'origine non è affatto un nome "magico", ma solo una convenzione standard. Sebbene abbia senso lasciare intatta questa convenzione, è possibile rinominarla perfettamente senza perdere alcuna funzionalità.
Nell'esempio seguente, il parametro URL del comando "clone" diventa "origine" per il repository locale clonato:
git clone https://github.com/gittower/git-crash-course.git
Le altre risposte dicono che origin
è un alias per l' URL di un repository remoto che non è del tutto accurato. Va notato che un indirizzo che inizia con http
è un URL mentre uno che inizia con git@
è un URI o Universal Resource Identifier.
Tutti gli URL sono URI, ma non tutti gli URI sono URL.
In breve, quando digiti git remote add origin <URI>
stai dicendo al tuo git locale che ogni volta che usi la parolaorigin
intendi effettivamente l'URI che hai specificato. Pensalo come una variabile che contiene un valore.
E proprio come una variabile, è possibile assegnare un nome che quello che vuoi (ad es. github
, heroku
, destination
, Ecc).
remoto (alias dell'url del repository) → origine (alias a monte) → master (alias del ramo);
remote
, Livello uguale working directory
, index
, repository
,
origin
Repository ramo locale mappa in ramo repository remoto