Git
Travailler avec des télécommandes
Recherche…
Syntaxe
-
git remote [-v | --verbose]
-
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
-
git remote rename <old> <new>
-
git remote remove <name>
-
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
-
git remote set-branches [--add] <name> <branch>…
-
git remote get-url [--push] [--all] <name>
-
git remote set-url [--push] <name> <newurl> [<oldurl>]
-
git remote set-url --add [--push] <name> <newurl>
-
git remote set-url --delete [--push] <name> <url>
-
git remote [-v | --verbose] show [-n] <name>…
-
git remote prune [-n | --dry-run] <name>…
-
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
Ajout d'un nouveau référentiel distant
git remote add upstream git-repository-url
Ajoute le dépôt git distant représenté par git-repository-url
tant que nouvelle télécommande nommée en upstream
du dépôt git
Mise à jour à partir du référentiel en amont
En supposant que vous définissiez le flux amont (comme dans la configuration d'un référentiel en amont)
git fetch remote-name
git merge remote-name/branch-name
La commande pull
combine une fetch
et une merge
.
git pull
La commande pull
with --rebase
flag combine une fetch
et une rebase
au lieu d'une merge
.
git pull --rebase remote-name branch-name
ls-remote
git ls-remote
est une commande unique qui vous permet d'interroger un dépôt à distance sans avoir à le cloner / le récupérer en premier .
Il listera les refs / heads et les refs / tags de ce repo distant.
Vous verrez parfois des refs/tags/v0.1.6
et des refs/tags/v0.1.6
refs/tags/v0.1.6^{}
: le ^{}
pour lister le tag annoté déréférencé (ie le commit sur lequel pointe ce tag)
Depuis git 2.8 (mars 2016), vous pouvez éviter cette double saisie pour une balise et lister directement les balises déréférencées avec:
git ls-remote --ref
Il peut également aider à résoudre l'url réel utilisé par un dépôt à distance lorsque vous avez le paramètre de configuration " url.<base>.insteadOf
".
Si git remote --get-url <aremotename>
renvoie https://server.com/user/repo et que vous avez défini git config url.ssh://[email protected]:.insteadOf https://server.com/
:
git ls-remote --get-url <aremotename>
ssh://[email protected]:user/repo
Suppression d'une succursale distante
Pour supprimer une branche distante dans Git:
git push [remote-name] --delete [branch-name]
ou
git push [remote-name] :[branch-name]
Suppression des copies locales des branches distantes supprimées
Si une branche distante a été supprimée, votre référentiel local doit être averti de l'élaguer.
Pour éliminer les branches supprimées d'une télécommande spécifique:
git fetch [remote-name] --prune
Pour éliminer les branches supprimées de toutes les télécommandes:
git fetch --all --prune
Afficher des informations sur une télécommande spécifique
Produire des informations sur une télécommande connue: origin
git remote show origin
Imprimer uniquement l'URL de la télécommande:
git config --get remote.origin.url
Avec 2.7+, il est également possible de faire, ce qui est sans doute meilleur que le précédent qui utilise la commande config
.
git remote get-url origin
Liste des télécommandes existantes
Liste de toutes les télécommandes existantes associées à ce référentiel:
git remote
Liste toutes les télécommandes existantes associées à ce référentiel en détail , y compris les fetch
et push
URL:
git remote --verbose
ou simplement
git remote -v
Commencer
Syntaxe pour pousser vers une branche distante
git push <remote_name> <branch_name>
Exemple
git push origin master
Définir en amont sur une nouvelle succursale
Vous pouvez créer une nouvelle branche et y accéder en utilisant
git checkout -b AP-57
Après avoir utilisé git checkout pour créer une nouvelle branche, vous devez définir cette origine en amont pour utiliser
git push --set-upstream origin AP-57
Après cela, vous pouvez utiliser git push pendant que vous êtes sur cette branche.
Changer un référentiel distant
Pour modifier l'URL du référentiel vers lequel vous souhaitez que votre télécommande pointe, vous pouvez utiliser l'option set-url
, comme ceci:
git remote set-url <remote_name> <remote_repository_url>
Exemple:
git remote set-url heroku https://git.heroku.com/fictional-remote-repository.git
Changer l'URL de Git Remote
Vérifiez la télécommande existante
git remote -v
# origin https://github.com/username/repo.git (fetch)
# origin https://github.com/usernam/repo.git (push)
Modification de l'URL du référentiel
git remote set-url origin https://github.com/username/repo2.git
# Change the 'origin' remote's URL
Vérifier la nouvelle URL distante
git remote -v
# origin https://github.com/username/repo2.git (fetch)
# origin https://github.com/username/repo2.git (push)
Renommer une télécommande
Pour renommer la télécommande, utilisez la commande git remote rename
La commande git remote rename
prend deux arguments:
- Un nom distant existant, par exemple: origine
- Un nouveau nom pour la télécommande, par exemple: destination
Obtenir le nom distant existant
git remote
# origin
Vérifier la télécommande existante avec l'URL
git remote -v
# origin https://github.com/username/repo.git (fetch)
# origin https://github.com/usernam/repo.git (push)
Renommer la télécommande
git remote rename origin destination
# Change remote name from 'origin' to 'destination'
Vérifier le nouveau nom
git remote -v
# destination https://github.com/username/repo.git (fetch)
# destination https://github.com/usernam/repo.git (push)
=== Erreurs possibles ===
Impossible de renommer la section de configuration 'remote. [Old name]' en 'remote. [New name]'
Cette erreur signifie que la télécommande que vous avez essayée avec l'ancien nom distant ( origine ) n'existe pas.
Remote [nouveau nom] existe déjà.
Le message d'erreur est explicite.
Définir l'URL d'une télécommande spécifique
Vous pouvez changer l'URL d'une télécommande existante par la commande
git remote set-url remote-name url
Obtenir l'URL d'une télécommande spécifique
Vous pouvez obtenir l'URL d'une télécommande existante en utilisant la commande
git remote get-url <name>
Par défaut, ce sera
git remote get-url origin