git remote
SVN utilizza un unico repository centralizzato per fungere da hub di comunicazione per gli sviluppatori e la collaborazione avviene mediante il passaggio di set di modifiche tra le copie di lavoro degli sviluppatori e il repository centrale. Ciò è diverso dal modello di collaborazione distribuita Git, che offre a ogni sviluppatore la propria copia del repository, completa della propria cronologia locale e della propria struttura di branch. Gli utenti in genere devono condividere una serie di commit piuttosto che un singolo set di modifiche. Invece di eseguire il commit di un set di modifiche da una copia di lavoro al repository centrale, Git permette di condividere interi branch tra i repository.
Il comando git remote
è un elemento del sistema più ampio che è responsabile della sincronizzazione delle modifiche. I record registrati tramite il comando git remote
vengono utilizzati insieme ai comandi git fetch, git push e git pull. Tutti questi comandi hanno le proprie responsabilità di sincronizzazione che possono essere esplorate sui link corrispondenti.
git remote
Il comando git remote
ti consente di creare, visualizzare ed eliminare connessioni ad altri repository. Le connessioni remote sono più simili ai segnalibri che non a link diretti ad altri repository. Invece di fornire accesso in tempo reale a un altro repository, fungono da nomi convenienti che possono essere usati per fare riferimento a un URL non altrettanto comodo.
Ad esempio, il diagramma seguente mostra due connessioni remote dal tuo repository al repository centrale e a un altro repository per sviluppatori. Invece di fare riferimento a loro tramite i loro URL completi, puoi passare le scorciatoie origin e john ad altri comandi Git.
materiale correlato
Registro Git avanzato
Scopri la soluzione
Impara a utilizzare Git con Bitbucket Cloud
Panoramica sull'utilizzo di git remote
Il comando git remote
è essenzialmente un'interfaccia per la gestione di un elenco di voci remote archiviate nel file ./.git/config
del repository. I seguenti comandi vengono utilizzati per visualizzare lo stato corrente dell'elenco remoto.
Visualizzazione delle configurazioni git remote
git remote
Elenca le connessioni remote di cui disponi ad altri repository.
git remote -v
Uguale al comando precedente, ma includi l'URL di ogni connessione.
Creazione e modifica delle configurazioni git remote
Il comando git remote
è anche un comodo metodo «di supporto» 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, potrai usare
git remote rm <name>
Rimuovi la connessione al repository remoto denominata
git remote rename <old-name> <new-name>
Rinomina una connessione remota da
Discussione su git remote
Git è progettato per offrire a ogni sviluppatore un ambiente di sviluppo completamente isolato. Ciò significa che le informazioni non vengono trasmesse automaticamente avanti e indietro tra i repository. Invece, gli sviluppatori devono inserire manualmente i commit upstream nel proprio repository locale o reindirizzare manualmente i propri commit locali al repository centrale. Il comando git remote
è in realtà solo un modo più semplice per passare gli URL a questi comandi di condivisione.
Il remoto di origine
Quando cloni un repository con git clone
, esso crea automaticamente una connessione remota chiamata origin che punta al repository clonato. Questo è utile per gli sviluppatori che creano una copia locale di un repository centrale, poiché fornisce un modo semplice per estrarre le modifiche upstream o pubblicare commit locali. Questo comportamento è anche il motivo per cui la maggior parte dei progetti basati su Git definisce il proprio repository centrale come origine.
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 in sola lettura a un repository. Ad esempio:
http://host/path/to/repo.git
Ma in genere non è possibile inviare i commit a un indirizzo HTTP (non consentiresti comunque i push anonimi). Per l'accesso in lettura-scrittura, dovresti invece usare SSH:
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 fin dall'inizio. Le soluzioni di hosting di terze parti moderne e sicure come Bitbucket.com forniranno questi URL per te.
Comandi git remote
Il comando git 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 remoto denominato
Accetta l'opzione -f
, che applicherà git fetch
immediatamente dopo la creazione del record remoto.
Accetta l'opzione --tags
, che applicherà git fetch
immediatamente e importerà tutti i tag dal repository remoto.
RENAME <OLD> <NEW>
Aggiorna ./.git/config
per rinominare il record
REMOVE or RM <NAME>
Modifica ./.git/config
e rimuove il remoto denominato
GET-URL <NAME>
Emette gli URL per un record remoto.
Accetta --push
, gli URL push vengono interrogati anziché recuperare gli URL.
Con --all
, verranno elencati tutti gli URL del remoto.
SHOW <NAME>
Fornisce informazioni di alto livello sul remoto
PRUNE <NAME>
Elimina tutti i banch locali per
Accetta l'opzione --dry-run
che elencherà quali branch sono impostati per il pruning, ma non verranno sottoposti a pruning.
Esempi di git remote
Oltre a origin, spesso è conveniente avere una connessione ai repository dei tuoi compagni di squadra. Ad esempio, se il tuo collega, John, gestiva un repository accessibile al pubblico 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 la collaborazione al di fuori del deposito centrale. Questo può essere molto utile per i piccoli team che lavorano su un progetto di grandi dimensioni.
Mostrare i remoti
Per predefinito, il comando git remote
elencherà le connessioni remote precedentemente archiviate ad altri repository. Questo produrrà un output a riga singola che elenca i nomi dei "segnalibri" 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 aggiunti ai segnalibri e, inoltre, l'URL del repository corrispondente. L'opzione -v
sta per "verbose". Di seguito è riportato un esempio di output git remote
verbose.
git remote -v
origin git@bitbucket.com:origin_user/reponame.git (fetch)
origin git@bitbucket.com:origin_user/reponame.git (push)
upstream https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo https://bitbucket.com/other_users_repo/reponame (fetch)
other_users_repo https://bitbucket.com/other_users_repo/reponame (push)
Aggiunta di repository remoti
Il comando git remote add
creerà un nuovo record di connessione a un repository remoto. Dopo aver aggiunto un remoto, potrai usare
$ git remote add fake_test https://bitbucket.com/upstream_user/reponame.git; [remote "remote_test"]
url = https://bitbucket.com/upstream_user/reponame.git
fetch = +refs/heads/*:refs/remotes/remote_test/*
Ispezione di un remoto
Il sottocomando show può essere aggiunto a git remote
per fornire un output dettagliato sulla configurazione di un remoto. Questo output conterrà un elenco dei branch associati al remoto e anche gli endpoint collegati per il recupero e il 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: main
Remote branches:
main tracked
simd-deprecated tracked
tutorial tracked
Local ref configured for 'git push':
main pushes to main (fast-forwardable)
Recupero e pull da remoti 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 che git pull possono essere usati per leggere da un repository remoto. Entrambi i comandi hanno operazioni diverse che sono spiegate in modo più approfondito nei rispettivi link.
Push ai remoti Git
Il comando git push
viene utilizzato per caricare i contenuti in un repository remoto.
git push <remote-name> <branch-name>
Questo esempio caricherà lo stato locale di <nome-remoto>
.
Ridenominazione e rimozione dei remoti
git remote rename <old-name> <new-name>
Il comando git remote
rename si spiega da sé. Una volta eseguito, questo comando rinominerà una connessione remota da ./.git/config
per rinominare anche il record per il remoto.
git remote rm <name>
Il comando git remote rm
rimuoverà la connessione al repository remoto specificato dal parametro git remote rm remote_test
e poi esaminiamo il contenuto di ./.git/config
possiamo vedere che il record [remote" remote_test"]
non c'è più.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.