свести к минимуму git diff путем удаления тривиальных изменений - PullRequest
6 голосов
/ 21 мая 2019

При работе с кодом (в основном в моем случае) и особенно с git и gitlab я часто работаю над определенным запросом на слияние и добавлением функций в течение нескольких недель.В конце я получаю очень длинный запрос на слияние, который сопровождающим очень трудно понять, потому что я внес много изменений.

Некоторые из этих изменений являются преднамеренными и важными для имеющейся функциидругие тривиальны, как исправление отступа определенного фрагмента кода, который я часто использую для улучшения читаемости во время отладки.Однако для того, чтобы MR был настолько маленьким, насколько это возможно, я хотел бы «отменить» все тривиальные изменения, не влияющие на сам код (но только на макет), перед тем как удалить метку WIP из моего MR.Поэтому иногда я просматриваю свой MR и отменяю все эти предварительные настройки вручную, чтобы сделать MR более читабельным для рецензентов.

Это большая глупая работа, которую можно потратить лучше, даже здесь.

Есть ли сценарий или механизм, который я могу использовать (в частности, для кода ), чтобы перейтичерез код и отменить все тривиальные изменения (например, изменения пробелов) в отношении определенного коммита?Это значительно упростит мою жизнь.Я видел себя пишущим сценарий для этого, но я надеюсь, что будет какая-то мерзавская магия, которую я смогу использовать, или для кого-то, кто уже решил эту проблему для меня.Есть предложения?

1 Ответ

5 голосов
/ 21 мая 2019

Лучше планировать это и сохранять коммиты для изменений, которые вы намереваетесь внести в слияние, и те, которые являются только временными для вас отдельными. Подготовка слияния тогда так же проста, как вишня, выбирающая эти важные коммиты в новую ветку, которая является слиянием с основным / основным, как это:

Рабочая ветвь

  • Создать рабочую ветку
  • Фиксация 1: Изменить отступ
  • Фиксация 2: Реализация чего-либо
  • Фиксация 3: Добавить журналы отладки
  • Фиксация 4: улучшение реализации
  • Фиксация 5: удалить некоторые журналы

Готов к слиянию

  • Создать ветку MR
  • Cherry pick совершает 2 и 4
  • Слияние с мастером

Даже если вы не планировали этого и у вас есть какие-то коммиты в вашей рабочей ветке, где вы смешали временные и постоянные вещи, вы можете выбрать только некоторые части коммита во время выбора вишни в ветке «готов к слиянию». Насколько это будет приятно, может зависеть от ваших инструментов git. Я использую IntelliJ IDE Git, что делает такие задачи довольно простыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...