Avoir un doute basique sur la dérivation git et fusionner. Une branche peut-elle être fusionnée sans aucune modification dans le maître. Si oui, qu'arrive-t-il aux changements de delta qui existent entre maître et branche. Est-ce que cela sera remplacé par les changements de branche maître. Reportez-vous au scénario ci-dessous:Comment fusionner la branche sans changement dans la branche master dans git?
J'ai deux branches master et BugBranch.
ÉTAPE 1:
C--B--A (master)
|
X (branch)
prit une branche de maître dit BugBranch. Maintenant, j'ai un fichier TestMerge.java.
public static void main(String[] args){
...
...
callSomeMethod();
switch(decision)
{
case A:
do_something
break;
case B:
do_something
break;
}
}
Donc, à l'étape 1, le maître et BugBranch ont la même apparence.
ÉTAPE 2: Le fichier (TestMerge) est modifié dans master comme ci-dessous. (Juste enlevé le commutateur)
public static void main(String[] args){
...
...
callSomeMethod();
}
C--B--A--1 (master)
|
X (branch)
ÉTAPE 3: Le problème est lorsque je tente de fusionner la branche avec le maître. Attendez-vous à un conflit de fusion dans le fichier, car il existe un delta à coup sûr et que vous voulez conserver les changements dans BugBranch. Mais la chose étrange est que, il est remplacé par le maître change.
Nous avons essayé les commandes ci-dessous
git checkout maître
git fusion BugBranch
C'est vraiment déroutant!
Avez-vous fait des changements avec ce fichier sur BugBranch? – chaoluo
Il n'y a pas de deltas dans Git. Chaque commit est un instantané complet du répertoire de travail. Et la branche est seulement un pointeur à commettre, notant plus. Donc, si vous venez de ramifier 'master', alors il n'y a pas de' X', la branche 'BugBranch' pointera sur 'A'. Et quand vous fusionnez commit 'A' dans commit' 1', c'est non-op, puisque commit 'A' fait déjà partie de l'historique pour commit' 1'. – PetSerAl
Avez-vous fait un changement sur la branche 'X' (le BugBranch)? – axiac