Fusion git par type de fichier

voix
1

J'ai deux branches git, maître et mybranch. Mybranch a tous les fichiers corrects * .json et maître a tous les autres types de fichiers corrects. Comment puis-je les fusionner?

Il y a beaucoup, beaucoup de conflits de fusion dans tous les fichiers. Si je pouvais faire fusionner par type de fichier, je ne serais pas à passer par tous les fichiers de fusion.

Créé 07/11/2018 à 20:11
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

git checkouta des options --ourset --theirsd'obtenir les versions respectives lors d' une fusion. Alors vous faites quelque chose comme

git checkout master
git merge mybranch
git checkout --theirs -- *.json
git checkout --ours -- <the-other-files>
git add .
git commit

où vous devrez jouer avec la coquille un peu à la liste des fichiers que vous voulez prendre l' une ou l'autre branche. Après avoir vérifié les versions souhaitées à l'arbre de travail, adddevrait effacer les dossiers de conflit.

Rappelez - vous, --oursest la branche que vous avez passé comme argument initial checkoutet --theirsest la branche que vous avez passé comme argument merge.

De plus, avant d'appeler add, vous pouvez changer d' avis avec le --ourset --theirs, parce que l'index contient encore toutes les versions. Donc , vous devriez être réellement en mesure de le faire git checkout --ours -- ., puis git checkout --theirs *.json.

Créé 07/11/2018 à 21:39
source utilisateur

voix
0

Étant donné que vous souhaitez fusionner Mybranchen master, des conseils généraux serait la suivante:

git checkout master
git merge Mybranch 

S'il y a des conflits de fusion - les résoudre.

Il est recommandé d'effectuer souvent un rebasage sur maître ou une fusion à la branche locale afin d'éviter une énorme quantité de conflits de fusion lorsque vous êtes prêt à apporter des changements de votre succursale locale en maître.

UPD: La solution la plus rapide serait l' utilisation du patch diff:

  1. Commander branche principale.

  2. Créer un patch diff uniquement pour les fichiers JSON.

    git diff master Mybranch *.json > json.diff

  3. Appliquer diff.

    git apply json.diff

  4. Valider les modifications.

Remarques : S'il y a des conflits dans le répertoire de travail - patch ne s'appliquent. Pourrait être utile de faire pour plusieurs ou tous JSON son propre diff afin de localiser le fichier JSON problématique. Pour diff contradictoires , vous pouvez ouvrir un fichier diff et le modifier avant d' appliquer. De toute façon - en cas de conflit, vous devez les résoudre.

Créé 07/11/2018 à 20:16
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more