SVN utilizza un singolo repository centralizzato per fungere da hub di comunicazione per gli sviluppatori e la collaborazione avviene passando changeset tra le copie di lavoro degli sviluppatori e il repository centrale. Questo è diverso dal modello di collaborazione distribuita di Git, che offre a ogni sviluppatore la propria copia del repository, completa della propria cronologia locale e della struttura del ramo. Gli utenti in genere devono condividere una serie di commit piuttosto che un singolo changeset., Invece di eseguire il commit di un changeset da una copia di lavoro al repository centrale, Git consente di condividere interi rami tra i repository.
Ilgit remote
comando è un pezzo del sistema più ampio che è responsabile per la sincronizzazione delle modifiche. I record registrati tramite il comandogit remote
vengono utilizzati insieme ai comandigit fetch
,git push
egit pull
. Questi comandi hanno tutti le proprie responsabilità di sincronizzazione che possono essere esplorate sui collegamenti corrispondenti.,
Git remote
Il comandogit remote
consente di creare, visualizzare ed eliminare connessioni ad altri repository. Le connessioni remote sono più simili a segnalibri piuttosto che collegamenti diretti in altri repository. Invece di fornire l’accesso in tempo reale a un altro repository, servono come nomi convenienti che possono essere utilizzati per fare riferimento a un URL non così conveniente.
Ad esempio, il diagramma seguente mostra due connessioni remote dal repository al repository centrale e al repository di un altro sviluppatore., Invece di fare riferimento ai loro URL completi, puoi passare le scorciatoie origin e john ad altri comandi Git.
Git remote usage overview
Il comando git remote
è essenzialmente un’interfaccia per la gestione di un elenco di voci remote memorizzate nel file ./.git/config
del repository. I seguenti comandi vengono utilizzati per visualizzare lo stato corrente dell’elenco remoto.
Visualizzazione delle configurazioni remote git
git remote
Elenca le connessioni remote che hai ad altri repository.,
git remote -v
Come il comando precedente, ma include l’URL di ogni connessione.
Creazione e modifica di configurazioni remote git
Il comandogit remote
è anche un metodo pratico o ‘helper’ per modificare il file./.git/config
di un repository. I comandi presentati di seguito consentono di gestire le connessioni con altri repository. I seguenti comandi modificheranno il file /.git/config
del repository., Il risultato dei seguenti comandi può essere ottenuto anche modificando direttamente il file./.git/config
con un editor di testo.
git remote add <name> <url>
Crea una nuova connessione a un repository remoto. Dopo aver aggiunto un telecomando, sarete in grado di utilizzare come una comoda scorciatoia per altri comandi Git.
git remote rm <name>
Rimuovere la connessione al repository remoto chiamato .
git remote rename <old-name> <new-name>
Rinominare una connessione remota da a .,
Git discussione remota
Git è progettato per dare ad ogni sviluppatore un ambiente di sviluppo completamente isolato. Ciò significa che le informazioni non vengono automaticamente passate avanti e indietro tra i repository. Invece, gli sviluppatori devono estrarre manualmente i commit upstream nel loro repository locale o spingere manualmente i commit locali nel repository centrale. Il comandogit remote
è in realtà solo un modo più semplice per passare gli URL a questi comandi di “condivisione”.,
Il telecomando di origine
Quando cloni un repository congit clone
, crea automaticamente una connessione remota chiamata origin che punta al repository clonato. Ciò è utile per gli sviluppatori che creano una copia locale di un repository centrale, poiché fornisce un modo semplice per estrarre le modifiche a monte 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.
URL del repository
Git supporta molti modi per fare riferimento a un repository remoto., Due dei modi più semplici per accedere a un repository remoto sono tramite i protocolli HTTP e SSH. HTTP è un modo semplice per consentire l’accesso anonimo e di sola lettura a un repository. Ad esempio:
But, it’s generally not possible to push commits to an HTTP address (you wouldn’t want to allow anonymous pushes anyways). For read-write access, you should use SSH instead:
ssh://user@host/path/to/repo.git
Avrai bisogno di un account SSH valido sulla macchina host, ma a parte questo, Git supporta l’accesso autenticato tramite SSH fuori dalla scatola. Soluzioni di hosting 3rd sicure moderne come Bitbucket.com fornirà questi URL per voi.
Comandi remoti Git
Il comandogit remote
è uno dei tanti comandi Git che richiede ulteriori ‘sottocomandi’aggiunti., Di seguito è riportato un esame dei sottocomandi git remote
comunemente usati.
ADD <NAME> <URL>
Aggiunge un record a ./.git/config
per il nome remoto nell’URL del repository .
Accetta un’opzione-f
, che git fetch
immediatamente dopo la creazione del record remoto.
Accetta un’opzione--tags
, chegit fetch
immediatamente e importa ogni tag dal repository remoto.,
RENAME <OLD> <NEW>
Aggiorna ./.git/config
per rinominare il record . Tutti i rami di monitoraggio remoto e le impostazioni di configurazione per il telecomando vengono aggiornati.
REMOVE or RM <NAME>
Modifica./.git/config
e rimuove il nome remoto . Tutti i rami di monitoraggio remoto e le impostazioni di configurazione per il telecomando vengono rimossi.
GET-URL <NAME>
Emette gli URL per un record remoto.
Accetta--push
, gli URL push vengono interrogati piuttosto che recuperare gli URL.,
Con--all
, verranno elencati tutti gli URL per il telecomando.
SHOW <NAME>
Emette informazioni di alto livello sul telecomando .
PRUNE <NAME>
Elimina tutti i rami locali che non sono presenti nel repository remoto.
Accetta un’opzione--dry-run
che elencherà quali rami sono impostati per essere potati, ma in realtà non li poterà.
Git remote examples
Oltre a origin, è spesso conveniente avere una connessione con i repository dei tuoi compagni di squadra., Ad esempio, se il tuo collega, John, ha mantenuto un repository accessibile pubblicamente su dev.example.com/john.git
, puoi aggiungere una connessione come segue:
git remote add john http://dev.example.com/john.git
Avere questo tipo di accesso ai repository dei singoli sviluppatori rende possibile collaborare al di fuori del repository centrale. Questo può essere molto utile per piccoli team che lavorano su un grande progetto.
Mostrando i tuoi telecomandi
Per impostazione predefinita, il comandogit remote
elencherà le connessioni remote precedentemente memorizzate ad altri repository., Questo produrrà un output a riga singola che elenca i nomi del nome” segnalibro ” dei repository remoti.
$ git remote
origin
upstream
other_users_repo
Richiamando git remote
con l’opzione -v
verrà stampato l’elenco dei nomi dei repository con segnalibri e, in aggiunta, l’URL del repository corrispondente. L’opzione-v
sta per “verbose”. Di seguito è riportato un esempio di output di verbose git remote
output.
Aggiunta di repository remoti
Il comandogit remote add
creerà un nuovo record di connessione a un repository remoto., Dopo aver aggiunto un telecomando, sarete in grado di utilizzare come una comoda scorciatoia per altri comandi Git. Per ulteriori informazioni sulla sintassi degli URL accettati, consultare la sezione” URL del repository ” di seguito. Questo comando creerà un nuovo record all’interno del repository ./.git/config
. Un esempio di questo aggiornamento del file di configurazione segue:
Ispezione di un telecomando
Il sottocomando show può essere aggiunto agit remote
per fornire un output dettagliato sulla configurazione di un telecomando., Questo output conterrà un elenco di rami associati al telecomando e anche gli endpoint collegati per il recupero e lo push.
git remote show upstream
* remote upstream
Fetch URL: https://bitbucket.com/upstream_user/reponame.git
Push URL: https://bitbucket.com/upstream_user/reponame.git
HEAD branch: master
Remote branches:
master tracked
simd-deprecated tracked
tutorial tracked
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
Recupero e estrazione da telecomandi Git
Una volta configurato un record remoto tramite l’uso del comando git remote
, il nome remoto può essere passato come argomento ad altri comandi Git per comunicare con il repository remoto. Sia git fetch
, egit pull
possono essere utilizzati per leggere da un repository remoto., Entrambi i comandi hanno operazioni diverse che vengono spiegate in modo più approfondito sui rispettivi collegamenti.
Pushing to Git remotes
Il comandogit push
viene utilizzato per scrivere in un repository remoto.
git push <remote-name> <branch-name>
Questo esempio caricherà lo stato locale di nel repository remoto specificato da .
Rinominare e rimuovere telecomandi
git remote rename <old-name> <new-name>
Il comandogit remote
rinominare è auto-esplicativo. Quando viene eseguito, questo comando rinomina una connessione remota da a ., Inoltre, questo modificherà il contenuto di ./.git/config
per rinominare anche il record per il telecomando.
git remote rm <name>
Il comandogit remote rm
rimuoverà la connessione al repository remoto specificato dal parametro. Per dimostrare cerchiamo di ‘annullare’ l’aggiunta remota dal nostro ultimo esempio. Se eseguiamogit remote rm remote_test
, e poi esaminiamo il contenuto di./.git/config
possiamo vedere che il record non c’è più.