Страницы

Поиск по вопросам

понедельник, 4 марта 2019 г.

Дублирование файлов в ветках

При создании файла/директории в локальном репозитории git, файл копируется во все ветки, а не в ту в которой создается (через консоль и редактор). Как этого избежать?


Ответ

вообще, создаёте вы файлы/каталоги не в репозитории/хранилище, а в рабочем каталоге (working directory/tree).
в хранилище файлы (точнее, их содержимое) «попадают» только после команды git commit
при переключении между ветками/коммитами программа git «вычисляет», какие изменения следует внести в рабочий каталог:
файлы/каталоги, которые есть в текущей ветке/коммите, но отсутствуют в той, на которую переключаетесь, удаляются; файлы/каталоги, которых нет в текущей ветке/коммите, но которые присутствуют в той, на которую переключаетесь, извлекаются из содержимого хранилища; аналогично извлекается и содержимое файлов, которое отличается: в текущей ветке/коммите — одно, в той, на которую переключаетесь — другое.
все же остальные файлы/каталоги при переключении между ветками/коммитами вообще никак не будут затронуты.
это относится и к тем файлам/каталогам, которых нет ни в текущей ветке/коммите, ни в той, на которую переключаетесь.

Как этого избежать?
пока вы не сохранили эти файлы/каталоги внутри хранилища, программа git, по крайней мере, выполняя команду checkout, не будет «касаться» таких «неотслеживаемых» файлов/каталогов внутри рабочего каталога.
так что краткий ответ: никак не избежать. так задумано.

Комментариев нет:

Отправить комментарий