#git #github
Добрый день уважаемые, подскажите, пожалуйста, какие команды нужно выполнить чтобы удалить файл из главной ветки. Допустим, я случайно в git добавил файл style/mywork.scss . Что мне необходимо выполнить в окне gitBash чтобы удалить его, без последующего отображения на github'e ? И ещё вопрос по данной же теме. В .gitignore я добавил запись для файла .style/.scss Но он всё равно добавился в git, в чём ошибка ?
Ответы
Ответ 1
Чтобы удалить файл из репозитория необходимо сделать следующее: Во первых, убедиться что Вы на ветке master: git branch Она будет выделена зелёным и звёздочкой. Если Вы не на нужной ветке, то переключиться на неё: git checkout master Затем необходимо удалить файл. Для этого есть два варианта, можно воспользоваться любым: можно удалить Git-командой: git rm <путь_к_удалённому_файлу> либо просто удалить файл с диска (можете просто через проводник) и добавить изменение в индекс следующей командой: git add <путь_к_удалённому_файлу> После выполнения одного из двух вариантов файл будет удалён, а изменения в индексе. Фиксируем изменения: git commit -m "удалил файл <название_файла>" Сообщение можно другое, это как пример. Далее необходимо отправить Ваши изменения на удалённую ветку (на github). Это можно сделать так: git push либо так: git push origin master .gitignore Файл .gitignore необходимо добавлять в репозиторий в самом начале. Если вдруг Вы закомитили какие-то файлы, а потом добавили их в .gitignore, то файлы, которые уже под присмотром Git-а не будут удалены, но новые файлы, подподающие под правила из .gitignore, добавляться не будут.Ответ 2
Способ, приведённый в сообщении Umed'а, удалит файл в текущем состоянии репозитория, но оставит всё содержимое файла в истории. Что может быть нежелательно, если нечаянно зафиксировали файл с паролями / ключами / токенами. Удалить такой файл можно командой git filter-branch --tree-filter 'rm -f имя_файла' master Внимание! Эта команда именит хеши всех коммитов, в которых был указанный файл, а также всех более поздних коммитов. Будьте аккуратны при последующей отправке изменений на сервер. Возможно, для вас будет полезна опция --force команды push. Подробнее см. Pro Git: Исправление истории и git-filter-branch(1) P.S.: отменить действие команды можно, например, так git checkout -B master refs/original/refs/heads/master
Комментариев нет:
Отправить комментарий