Recherche…


Syntaxe

  • git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
  • git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
  • git branch --unset-upstream [<branchname>]
  • git branch (-m | -M) [<oldbranch>] <newbranch>
  • git branch (-d | -D) [-r] <branchname>…​
  • git branch --edit-description [<branchname>]
  • git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>…​]

Paramètres

Paramètre Détails
-d, --delete Supprimer une branche. La branche doit être complètement fusionnée dans sa branche amont, ou dans HEAD si aucun amont n'a été défini avec --track ou --set-upstream
-RÉ Raccourci pour --delete --force
-m, --move Déplacer / renommer une branche et le reflog correspondant
-M Raccourci pour --move --force
-r, --remotes Lister ou supprimer (si utilisé avec -d) les branches de suivi à distance
-a, --tous Liste à la fois les branches de suivi à distance et les succursales locales
--liste Activer le mode liste. git branch <pattern> essaierait de créer une branche, utilisez git branch --list <pattern> pour lister les branches correspondantes
--set-upstream Si la branche spécifiée n'existe pas encore ou si --force a été donné, agit exactement comme --track . Sinon, configure la configuration comme --track lors de la création de la branche, sauf que la branche ne change pas

Remarques

Chaque dépôt git a une ou plusieurs branches . Une branche est une référence nommée à HEAD d'une séquence de commits.

Un git a une branche de courant (indiqué par un * dans la liste des noms de branche imprimés par la git branch commande), chaque fois que vous créez un nouveau commit avec le git commit commande, votre nouveau commit devient la HEAD de la branche actuelle, et le HEAD précédent devient le parent du nouvel commit.

Une nouvelle succursale aura le même HEAD que la succursale à partir de laquelle elle a été créée jusqu'à ce que quelque chose soit engagé dans la nouvelle succursale.

Liste des succursales

Git fournit plusieurs commandes pour lister les branches. Toutes les commandes utilisent la fonction de git branch , qui fournira une liste de certaines branches, en fonction des options placées sur la ligne de commande. Si possible, Git indiquera la branche actuellement sélectionnée avec une étoile à côté.

Objectif Commander
Liste des branches locales git branch
Répertorier les branches locales git branch -v
Liste des branches distantes et locales git branch -a OR git branch --all
Liste des branches distantes et locales (verbose) git branch -av
Liste des branches distantes git branch -r
Liste des succursales distantes avec la dernière validation git branch -rv
Liste des branches fusionnées git branch --merged
Liste des branches non fusionnées git branch --no-merged
Liste des branches contenant un commit git branch --contains [<commit>]

Notes :

  • Ajouter un v supplémentaire à -v par exemple $ git branch -avv ou $ git branch -vv affichera également le nom de la branche en amont.
  • Les branches affichées en rouge sont des branches éloignées

Créer et vérifier de nouvelles branches

Pour créer une nouvelle branche tout en restant sur la branche en cours, utilisez:

git branch <name>

Généralement, le nom de la succursale ne doit pas contenir d'espaces et est soumis à d'autres spécifications répertoriées ici . Pour basculer vers une branche existante:

git checkout <name>

Pour créer une nouvelle branche et y basculer:

git checkout -b <name>

Pour créer une branche à un point autre que le dernier commit de la branche en cours (également appelée HEAD), utilisez l'une des commandes suivantes:

git branch <name> [<start-point>]
git checkout -b <name> [<start-point>]

Le <start-point> peut être toute révision connue de git (par exemple, un autre nom de branche, commit SHA ou une référence symbolique telle que HEAD ou un nom de tag):

git checkout -b <name> some_other_branch
git checkout -b <name> af295
git checkout -b <name> HEAD~5
git checkout -b <name> v1.0.5

Pour créer une branche à partir d'une branche distante (la valeur par défaut <remote_name> est l'origine):

git branch <name> <remote_name>/<branch_name>
git checkout -b <name> <remote_name>/<branch_name>

Si un nom de branche donné est trouvé sur une seule télécommande, vous pouvez simplement utiliser

git checkout -b <branch_name>

ce qui équivaut à

git checkout -b <branch_name> <remote_name>/<branch_name>

Parfois, vous devrez peut-être déplacer plusieurs de vos commits récents vers une nouvelle succursale. Ceci peut être réalisé en ramifiant et en "roulant", comme ceci:

git branch <new_name>
git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work.
git checkout <new_name>

Voici une explication illustrative de cette technique:

 Initial state       After git branch <new_name>    After git reset --hard HEAD~2
                             newBranch                        newBranch
                                 ↓                                ↓
A-B-C-D-E (HEAD)         A-B-C-D-E (HEAD)                 A-B-C-D-E (HEAD)
        ↑                        ↑                            ↑
      master                   master                       master

Supprimer une branche localement

$ git branch -d dev

Supprime la branche nommée dev si ses modifications sont fusionnées avec une autre branche et ne seront pas perdues. Si la branche dev contient des modifications qui n'ont pas encore été fusionnées et qui seraient perdues, git branch -d échouera:

$ git branch -d dev
error: The branch 'dev' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev'.

Par le message d'avertissement, vous pouvez forcer la suppression de la branche (et perdre les modifications non fusionnées dans cette branche) en utilisant l'indicateur -D :

$ git branch -D dev

Découvrez une nouvelle branche de suivi d'une succursale distante

Il existe trois façons de créer une nouvelle feature branche qui suit l’ origin/feature branche distante:

  • git checkout --track -b feature origin/feature ,
  • git checkout -t origin/feature ,
  • git checkout feature - en supposant qu'il n'y a pas de branche d' feature locale et qu'il n'y a qu'une seule télécommande avec la branche de feature .

Pour définir en amont le suivi de la branche distante - tapez:

  • git branch --set-upstream-to=<remote>/<branch> <branch>
  • git branch -u <remote>/<branch> <branch>

où:

  • <remote> peut être: origin , develop ou celui créé par l'utilisateur,
  • <branch> est la branche de l'utilisateur à suivre sur la télécommande.

Pour vérifier quelles succursales distantes vos branches locales suivent:

  • git branch -vv

Renommer une branche

Renommez la branche que vous avez extraite:

git branch -m new_branch_name

Renommez une autre branche:

git branch -m branch_you_want_to_rename new_branch_name

Ecraser un seul fichier dans le répertoire de travail en cours avec le même fichier d'une autre branche

Le fichier extrait écrasera les modifications que vous n'aviez pas encore effectuées dans ce fichier.

Cette commande extrait le fichier file.example (situé dans le répertoire path/to/ ) et remplace toutes les modifications apportées à ce fichier.

git checkout some-branch path/to/file

some-branch peut être n'importe quel tree-ish connu (voir Sélection de révision et gitrevisions pour plus de détails)


Vous devez ajouter -- avant le chemin si votre fichier pourrait être confondu avec un fichier (facultatif). Aucune autre option ne peut être fournie après le -- .

git checkout some-branch -- some-file

Le second some-file est un fichier dans cet exemple.

Supprimer une branche distante

Pour supprimer une branche sur le référentiel distant d' origin , vous pouvez utiliser pour Git version 1.5.0 et ultérieure

git push origin :<branchName>

et à partir de la version 1.7.0 de Git, vous pouvez supprimer une branche distante en utilisant

git push origin --delete <branchName>

Pour supprimer une branche de suivi à distance locale:

git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter

git fetch <remote> --prune # Delete multiple obsolete tracking branches
git fetch <remote> -p      # Shorter

Pour supprimer une branche localement. Notez que cela ne supprimera pas la branche si elle a des modifications non fusionnées:

git branch -d <branchName>

Pour supprimer une branche, même si elle comporte des modifications non fusionnées:

git branch -D <branchName>

Créer une branche orpheline (c'est-à-dire une branche sans engagement parent)

git checkout --orphan new-orphan-branch

Le premier commit effectué sur cette nouvelle branche n'aura pas de parents et ce sera la racine d'un nouvel historique totalement déconnecté de toutes les autres branches et validations.

la source

Poussez la branche à distance

Utilisez pour pousser les validations effectuées sur votre branche locale vers un référentiel distant.

La commande git push prend deux arguments:

  • Un nom distant, par exemple, origin
  • Un nom de branche, par exemple, master

Par exemple:

git push  <REMOTENAME> <BRANCHNAME>

Par exemple, vous exécutez généralement git push origin master pour transmettre vos modifications locales à votre référentiel en ligne.

Utiliser -u (abréviation de --set-upstream ) configurera les informations de suivi pendant la diffusion.

git push -u <REMOTENAME> <BRANCHNAME>

Par défaut, git envoie la branche locale à une branche distante du même nom. Par exemple, si vous avez une new-feature appelée locale, si vous appuyez sur la branche locale, elle créera également une new-feature branche distante. Si vous souhaitez utiliser un autre nom pour la branche à distance, ajoutez le nom distant après le nom de la branche locale, séparés par : :

git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>

Déplacer la branche actuelle HEAD vers un commit arbitraire

Une branche est juste un pointeur sur un commit, vous pouvez donc le déplacer librement. Pour que la branche fasse référence au commit aabbcc , aabbcc la commande

git reset --hard aabbcc

Veuillez noter que cela écrasera le commit actuel de votre branche et, par conséquent, tout son historique. Vous pourriez perdre du travail en émettant cette commande. Si tel est le cas, vous pouvez utiliser le reflog pour récupérer les commits perdus. Il est conseillé d’exécuter cette commande sur une nouvelle branche au lieu de celle en cours.

Cependant, cette commande peut être particulièrement utile lors de la modification ou de la modification de l'historique.

Passage rapide à la branche précédente

Vous pouvez rapidement passer à la branche précédente en utilisant

git checkout -

Recherche dans les branches

Pour répertorier les branches locales contenant une validation ou une balise spécifique

git branch --contains <commit>

Pour répertorier les branches locales et distantes contenant une validation ou une balise spécifique

git branch -a --contains <commit>


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow