Каков практический рабочий процесс для сохранения незафиксированных локальных изменений в git?

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

  • У меня есть несколько локальных изменений в нескольких файлах web.config, createDb.sqlили в любых других
  • Я не хочу коммитить эти файлы, так как изменения относятся только к моей локальной машине
  • Эти файлы должныконтролироваться версиями, и, кроме того, вносятся изменения довольно часто для некоторых из них (в частности, сценариев sql), поэтому я хочу получать обновления для этих файлов
  • я делаюхочу зафиксировать все остальные файлы
  • я хочу иметь возможность это делать без трения, в одной команде (используя posh-git, поэтому powershell приветствуется)

Решение, связанное с, как сказано, использует git add -pи это непрактично, скучно все время вручную ковырять чанки или может есть более удобный способ сделать это?

Например, может сработать одно из следующего:

  • если есть возможность фильтровать файлы в моей рабочей копии перед добавлением их в индекс, что-то вроде git -add -A -EXCEPT web. конфиг crateDb.sql. Затем я могу сопоставить с ним псевдоним git и все.
  • если есть возможность деприменить тайник. Я имею в виду удаление изменений, содержащихся в одном конкретном тайнике, из рабочей копии. Так что мне придется делать что-то вроде git stash -deapplyперед каждым коммитом, что тоже нормально.

Проблема очень распространена, и странно, что в настоящее время нет решения. Например. TortoiseSVN имеет функцию «игнорирования при фиксации», Perforce позволяет хранить такие локальные изменения в отдельном списке изменений и никогда не отправлять их.

10
задан Cœur 7 March 2019 в 14:34
поделиться