@gregorypetrov

Как удалить лишние папки и файлы из git репозитория?

Добрый вечер, коллеги!

Работаю над сайтом в phpstorm. Возникла необходимость удалить из репозитория файлы и папки, которые не должны лежать в гите (при этом на продакшен сервере, который обновляется из git-ветки, эти файлы и папки конечно должны быть, только в git их быть не должно).

Как удалить из ветки файлы и папки?

Для примера, удалить надо /folder-3-to-remove и file3-to-remove.php:

/folder1
/folder2
/folder-3-to-remove
file.php
file2.php
file3-to-remove.php

Спасибо за ответы!
  • Вопрос задан
  • 17923 просмотра
Решения вопроса 1
kimono
@kimono
Web developer
Попробуйте: git rm --cached folder-3-to-remove
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ilyarsoftware
Вариант 1 (история изменений, добавлений файлов в папках останется):

  1. Удалить локально, закомитить
  2. Добавить названия папок в .gitignore
  3. git push


Вариант 2 (история история будет полностью перезаписана, изменений, добавлений файлов в папках не будет):
Это вариант следует согласовывать, если с репозиторием работает больше одного разработчика.
  1. git obliterate <путь_папки>(https://github.com/tj/git-extras)
  2. git push --force

После этой операции другим участникам, надо будет локально сбросить ветки:

git fetch
git checkout master
git reset --hard origin/master


Аналог команды git obliterate исключительно средствами Git:

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch -r <путь_папки>' \
--prune-empty --tag-name-filter cat -- --all
Ответ написан
Комментировать
@Zewkin
Я у мамы фронтэндер
Удалить локально и закоммитить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы