Есть ли способ применить форматирование в стиле кода InteliJ перед фиксацией в Git?

2

Мы хотели бы создать общий стиль кода для всей команды, чтобы решить проблему с различными форматами, которые делают файлы "грязными" во время проверки кода, хотя они не содержат реальных значимых изменений

Шаги:

  1. Создание XML-стиля кода InteliJ
  2. Импортируйте этот XML во все наши IDE (InteliJ)
  3. Перейдите в каждый репозиторий git (~ 30) и создайте коммит, который переформатирует весь код.

Мой вопрос в том, есть ли способ обеспечить, чтобы отныне все коммиты будут привязаны к этому новому формату?

например разработчик, который попытается зафиксировать код, который не отформатирован, получит сообщение об ошибке, и оно будет прервано.

  • 0
    Вы используете Maven или что-то? Если это так, вы можете использовать один из существующих плагинов. Перед git commit нужно как-то перезаписать команду. в Linux это был бы простой псевдоним
  • 0
    Да, большинство репозиториев основано на Mavan. Не могли бы вы объяснить, как мы можем использовать Maven для принудительного форматирования?
Показать ещё 1 комментарий
Теги:
intellij-idea
ide
githooks

1 ответ

2
Лучший ответ

Если вы совершаете код с помощью IntelliJ, вы можете настроить некоторые правила "Перед коммитом" в среде IDE.

В Windows откройте "Файл" → "Настройки" → "Контроль версий" → "Диалог фиксации". Вы увидите 3 флажка: "Код реформата", "Изменить порядок", "Оптимизировать импорт".

На Mac → Настройки → Контроль версий → Фиксировать диалог.

Конечно, это применит только ваш стиль, если вы передадите через среду IDE.

Если вы хотите простое решение GIT, вы должны взглянуть на git-крючки. Крючки - это небольшие фрагменты кода (вы можете назвать их плагинами), которые позволяют вам расширять функциональность git. Вы также можете использовать их как часть проекта.

Это очень подробное объяснение того, как решить ту же проблему, что и у вас: https://proandroiddev.com/ooga-chaka-git-hooks-to-enforce-code-quality-11ce8d0d23cb

Git-крючки также могут применяться к более сложным решениям для управления кодом. Решения на основе Git (т.е. Битбакет).

  • 0
    Благодаря Diego и Yole, это охватывает 90% нашей команды, которая использует функции контроля версий Intelij, но для остальных 10%, которые используют внешние инструменты или командную строку, это не будет работать, у вас есть больше информации об этом подходе git hook ?
  • 1
    Конечно, я обновил свой ответ более подробно. Если вы используете корпоративное решение, такое как bitbucket, gitlab, github и т. Д., Я, вероятно, применил бы здесь ловушку, чтобы вам не приходилось беспокоиться о том, что кто-то в команде устанавливает вещи. Это был бы более надежный подход.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню