Как подгрузить файлы которые были в gitignore?

283
30 декабря 2017, 04:55

Здравствуйте!
Добавил файлы в .gitignore (не подумал, что их не будет на сервере).
Теперь понял что их нет, а они мне нужны.
Как можно их вернуть в нынешний коммит?

Answer 1

Вы что-то спросили, не дождавшись ответа что-то сделали, потом уточнили, но всё же. Давайте всё же дадим формальный ответ на вопрос, чтобы не по комментариям было рассыпано.

Первая ремарка касается того, что нельзя добавить файлы в текущий коммит. Git устроен таким образом, что в любом месте земного шара добавляя один и тот же файл – вы получите один и тот же ID для этого файла. А коммит с чуть иным набором файлов уже будет иметь другой SHA ID.

Поэтому технически вы можете создать ещё один коммит, а потом объединить его с предыдущим – и выглядеть будет как "файлы добавлены в тот же коммит", но технически это уже будет другой коммит, с другим идентификатором.

Второй момент, который подчеркнули в комментариях – это то, что .gitignore фильтрует файлы при попытке добавления в коммит (даже если вы ещё не закоммитили сам .gitignore – он уже работает по-новому), но он никак не меняет уже созданные коммиты.

Поэтому если у вас в 2016 году был создан файл .gitignore в котором была принята политика "не добавлять папку /uploads" то вы можете весь год делать коммиты – и гит не будет замечать изменения в этой папке, фильтровать их. А как только вы в 2017 году примете в компании новую политику "добавлять папку upload" – то вам нужно поменять .gitignore и как только вы это сделаете – то сможете в последующих коммитах добавлять файлы из этой папки.

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

Если же вы только недавно приняли для себя решение о том, что определённые файлы вам не нужны, не успели ещё запушить – то можно аккуратно переписать локальную историю как угодно, в том числе и убрать неправильные строки в .gitignore, от которых вы уже успели отказаться.

READ ALSO
Обработка изображений в РHP [требует правки]

Обработка изображений в РHP [требует правки]

У меня система приватные сообщения написано на PHPЕсть регистрация,вход так далее

249
Apache процесс не умирает после отключения клиента, если RabbitMQ

Apache процесс не умирает после отключения клиента, если RabbitMQ

Я все еще пытаюсь использовать Server Side Events в моем проекте(Это как Long Polling на стероидах)

260
Как реализовать поиск c фильтрами в Laravel?

Как реализовать поиск c фильтрами в Laravel?

На главную страницу сайта выгружаются данные, к примеру, квартиры (фото, описание, площадь, стоимость и тд

288
Как заменить конструкцию query_posts на get_posts?

Как заменить конструкцию query_posts на get_posts?

На сайте wordpress есть конструкция с query_posts

221