2017-04-05 1 views
0

J'essaie de git bisect un mauvais comportement dans un dépôt public.git bisect en combinaison avec CRLF/LF

Chaque dépôt:

  • certains commits avec CRLF (je suis sur Mac OS, donc attendre LF)
  • un .gitattributesfile dans sa racine, normalisant .c, .h et fichiers .java

Si je comprends bien, aucun des présents .git/config ou ~/.gitconfig devrait la matière, comme .gitattributes a priorité.

Mon problème se rapporte à ceci: quand je fais une extraction d'un commit avec CRLF, les fichiers locaux sont modifiés avec LF. Ces fichiers apparaissent comme modifiés sur git status. Ensuite, si j'essaie de vérifier un autre commit, git refuse afin de protéger mes changements locaux. Bien.

Dans le cas checkout, je peux le forcer avec -f et continuer. Le problème est que je n'arrive pas à forcer git bisect skip. Si j'essaie, git me dit de stocker les changements. Je ne peux pas obtenir de fichiers de travail propres (le stockage me laisse avec des retours à la ligne modifiés de toute façon), et je ne peux pas sauter.

J'ai essayé de copier sur un .gitattributes temporaire afin que bisect ne modifie pas les retours à la ligne, mais il se plaint alors que les changements dans .gitattributes ne sont pas sauvegardés.

Existe-t-il un moyen de forcer bisect?

+0

Ugh. J'essayerais le fichier '.gitattributes' temporaire plus le réglage' git update-index --skip-worktree' dessus, et espère qu'il n'y a aucun changement '' .gitattributes' dans n'importe lequel des commits de bisect-range. A défaut, gardez un '.gitattributes 'temporaire que vous pouvez échanger et sortir, l'échanger pour aller à la prochaine section, l'échanger et' git checkout -f' pour mettre à jour, etc. – torek

Répondre

0

aucun des présents .git/config ou ~/.gitconfig devrait importer, comme .gitattributes a priorité

pas vraiment, le fichier local pour gitattributes est .git/info/attributes, et il a préséance sur tout .gitattributes fichier dans le référentiel