Git est un gestionnaire de révision distribué. Il intègre donc des mécanismes de synchronisation entre dépots. Un même projet peut être lié à plusieurs dépôts distants, ce sont d'autre version du même projet disponible sur le réseau/Internet. Collaborer avec d'autre personne consiste à gérer ces dépôts distants.
Lorsqu'on clone un projet git via la commande git clone, git garde une référence vers celui-ci c'est la référence origin.
$ git clone ssh://user@host:port/path/to/git-project.git
On utilise la commande git remote pour afficher les références vers les dépôts distants, l'option -v permet d'afficher l'URL:
$ git remote -v
$ git remote add ref url
Pour récupérer l'ensemble des modifications apparues sur le dépôt distant sans modifier l'espace de travail, on utilise la commande git fetch:
$ git fetch origin
Pour récupérer également les tags associés utiliser l'argument --tag Toutes les nouvelles données et les branches du dépôt distant sont récupérées dans le dépot git local mais les modifications ne sont pas intégrées aux branches locales.
$ git fetch --tags
Pour fusionner automatiquement les modifications apportées sur les branches distantes, elles doivent être configurées comme suivies, on utilisera alors la commande git pull. git pull (tirer) permet de récupérer et d’intégrer automatiquement (si c'est possible) les modifications apportées à la branche distante sur la branche locale. Pour avoir le détail des branches suivies, et donc des actions de git pull utiliser la commande git remote show:
$ git remote show origin
Une fois les modifications apportées sur le dépôt local, après commits, on pousse sur le dépôt distant les nouvelles révisions pour les partager:
$ git push origin master
Pour renommer une référence sur un dépôt distant, utiliser git remote rename:
$ git remote rename origin distant
On peut également supprimer l'un des dépôts distant s'il n'est plus utilisé:
$ git remote rm test