Страницы

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

суббота, 11 января 2020 г.

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

#git #echo #touch


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


Ответы

Ответ 1



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

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

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