Об’єднання без конфліктів пробілів


179

У мене є проблема, коли у мене є велика комісія, яка змінює близько тисячі рядків коду, видаляючи пробіли з кінця рядків та видаляючи пробіли перед вкладками.

Також є близько 50 запитів на виклик цього проекту, які будуть мати конфлікти, коли моя комісія об'єднана. Чи є спосіб встановити git таким чином, що при об'єднанні майбутніх комітетів він ігнорує конфлікти, коли одна з них - це лише пробіл простору?

Змінити самі git або використовувати сторонній інструмент неможливо, але добре використовувати гачок.


Можливий дублікат біди з
білого простору

Відповіді:


246
 git merge -Xignore-all-space

Або (точніше)

 git merge -Xignore-space-change

має бути достатньо, щоб ігнорувати всі конфліктні ситуації, пов'язані з простором, під час злиття.

Див. Git diff :

--ignore-space-change

Ігноруйте зміни кількості пробілів.
Це ігнорує пробіл в кінці рядка і вважає всі інші послідовності одного або декількох символів пробілу еквівалентними.

--ignore-all-space

Ігноруйте пробіли при порівнянні ліній.
Це ігнорує відмінності, навіть якщо в одному рядку є пробіл, де в другому рядку немає.

ks1322 додає в коментарях гарну пораду:

Варто об'єднатись --no-commitта переглянути об'єднання до фактичного вчинення .


OP Каллум Macrae повідомляє , що в цьому випадку злиття продовжити безперебійно, і замикають прогалини , що містяться в запиті , тягнути патчі застосовуються до локальних файлів.
Тим не менше, ОП використовує гачок, який попередньо здійснить, щоб піклуватися про вказані місця.
(Я думаю, трохи схожий на цей , про який також посилається тут ).


Тут йдеться про посилання на попередню зачіпання ОП :

На додаток до вилучення пробілів пробілів, він видаляє одне-три пробіли перед вкладками (у мене ширина вкладки встановлено на 4) та додає EOL.
У мене були повідомлення про те, що код, який додає EOL, видаляє файл у Windows, але не зміг його повторити.


1
З моїх тестів поки що, схоже, це видаляє всі зміни пробілів у файлі. Однак зараз я використовую гачок попереднього фіксації, щоб видалити пробіл білого кольору, тому це не проблема.
callumacrae

1
@CallumMacrae: добре, і дякую за відгук. Знову я додав у відповідь ваше посилання для більшої наочності.
VonC

1
git merge -Xignore-space-change- Ну, я можу сказати напевно , це не робота ... . Єдиний шматок пробілу, який я намагався видалити, залишився. Гіт абсолютно смокче.
jww

1
Варто об'єднатись --no-commitта переглянути об'єднання до фактичного вчинення.
ks1322

1
-Xignore-all-space, здається, нічого не стосується пробілів, і
gig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.