Рассмотрим следующую раскладку:
tests/
Vendor/
Product/
Module/
db/
.gitignore
file-created-by-test-runs-and-ignored-by-gitignore-above.json
SomeTest.php
OtherTest.php
В ветке topi c с длинными изгибами мы хотим реорганизовать тесты, чтобы переместить большую часть вышеперечисленного в tests\unit
, а также переместить местоположение временных файлов где-то еще, чтобы они не попадали в версионное дерево исходных текстов.
Мы смело приводим дерево в требуемое состояние:
tests/
unit/
Vendor/
Product/
Module/
SomeTest.php
OtherTest.php
... и после рефакторинга базовых классов тестов в используйте / tmp или что-то еще, мы добросовестно фиксируем.
Затем мы снова извлекаем основную ветвь, выполняем некоторую работу и запускаем версию набора ветвей основной ветки.
Затем мы проверяем ветвь topi c, и неожиданно у нас остаются временные файлы, оставшиеся от тестовых запусков главной ветки, под tests/Vendor/Product/Module/db
, перечисленные как неотслеживаемые файлы. Теперь они не игнорируются, поскольку файлы .gitignore
(которые были версионными) были удалены путем извлечения ветки topi c, , но файлы, игнорируемые этими файлами .gitignore
, очевидно, не были ' t .
Есть ли рекомендуемая практика для избежания этого раздражения и эффективного выражения намерения: «Эй git, этот коммит удаляет этот каталог; он делает его Прошло . Мы не хотим, чтобы это или что-то в этом существовало, начиная с этого коммита, пока мы снова не передумаем. "? Я довожу дерево до желаемого состояния и обязуюсь. Я ожидаю, что придерживаться. Можно ли этого достичь?