Recherche…


Syntaxe

  • git merge another_branch [options]
  • git fusion --abort

Paramètres

Paramètre Détails
-m Message à inclure dans la validation de fusion
-v Afficher le résultat détaillé
--abort Tenter de rétablir tous les fichiers dans leur état
--ff-only Abandonne instantanément lorsqu'un engagement de fusion serait requis
--no-ff Force la création d'une validation de fusion, même si ce n'est pas obligatoire
--no-commit Prétend la fusion a échoué pour permettre l'inspection et le réglage du résultat
--stat Afficher un diffstat après la fin de la fusion
-n / --no-stat Ne pas montrer le diffstat
--squash Permet une validation unique sur la branche en cours avec les modifications fusionnées

Fusionner une branche dans une autre

git merge incomingBranch

Cela fusionne la branche incomingBranch dans la branche dans laquelle vous vous trouvez actuellement. Par exemple, si vous êtes actuellement dans master , incomingBranch sera fusionné dans master .

La fusion peut créer des conflits dans certains cas. Si cela se produit, vous verrez le message Automatic merge failed; fix conflicts and then commit the result. Vous devrez modifier manuellement les fichiers en conflit ou annuler votre tentative de fusion, exécutez:

git merge --abort

Fusion automatique

Lorsque les commits sur deux branches ne sont pas en conflit, Git peut les fusionner automatiquement:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Abandonner une fusion

Après avoir lancé une fusion, vous souhaiterez peut-être arrêter la fusion et rétablir le tout dans son état de pré-fusion. Utiliser --abort :

git merge --abort

Garder les changements d'un seul côté d'une fusion

Lors d' une fusion, vous pouvez passer --ours ou --theirs à git checkout de prendre toutes les modifications d'un fichier d'un côté ou de l'autre d'une fusion.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

Fusionner avec un commit

Le comportement par défaut est lorsque la fusion se résout en une accélération rapide, ne met à jour que le pointeur de branche, sans créer de validation de fusion. Utilisez --no-ff pour résoudre le problème.

git merge <branch_name> --no-ff -m "<commit message>"

Recherche de toutes les branches sans modifications fusionnées

Parfois, il se peut que des branches soient déjà présentes et que leurs modifications aient déjà été fusionnées dans Master. Cela permet de trouver toutes les branches qui ne sont pas master qui n'ont pas de commits uniques par rapport à master . Ceci est très utile pour trouver des branches qui n'ont pas été supprimées après la fusion du PR avec master.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


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