Страницы

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

понедельник, 30 декабря 2019 г.

Как удалить элемент из master ветки репозитория?

#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

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

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