J'ai un problème où j'ai un gros commit qui change environ mille lignes de code, en supprimant les espaces à la fin des lignes et en supprimant les espaces avant les tabulations.
Il y a également environ 50 pull requests pour ce projet, qui auront toutes des conflits lorsque mon commit sera fusionné. Existe-t-il un moyen de configurer git de sorte que lors de la fusion de futurs commits, il ignore les conflits où l'un d'entre eux n'est qu'un changement d'espace?
Modifier git lui-même ou utiliser un outil tiers n'est pas possible, mais utiliser un hook est très bien.
git
whitespace
git-merge
callumacrae
la source
la source
Réponses:
Ou (plus précis)
devrait être suffisant pour ignorer tous les conflits liés à l'espace lors de la fusion.
Voir git diff :
ks1322
ajoute dans les commentaires un bon conseil:L' OP Callum Macrae signale que, dans ce cas, la fusion se déroule sans interruption et les espaces de fin contenus dans les correctifs de demande d'extraction sont appliqués aux fichiers locaux.
Cependant, l'OP utilise un hook pré-commit qui s'occupe desdits espaces de fin.
(Je suppose un peu similaire à celui-ci , également référencé ici ).
Le hook de pré-validation de l'OP est référencé ici :
la source
git merge -Xignore-space-change
- eh bien, je peux dire avec certitude ce ne fonctionne pas ... . Le seul espace blanc que j'essayais de supprimer est resté. Git est vraiment nul.--no-commit
et de revoir la fusion avant la validation réelle.Si vous voyez que vous avez beaucoup de problèmes d'espaces dans une fusion, vous pouvez simplement l'annuler et recommencer, cette fois avec -Xignore-all-space ou -Xignore-space-change. La première option ignore complètement les espaces lors de la comparaison des lignes, la seconde traite les séquences d'un ou plusieurs espaces blancs comme équivalentes.
la source