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 remotecon 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ù.