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