AlexandrDP
@AlexandrDP
C#, ASP .NET MVC, WindowsPhone, Android

Как удалить файл из репозитория локального и удаленного, но сохранив локально?

Git как удалить файл из репозитория, сохранив локально и удалить из удаленного репозитория (ранее был добавлен туда)?

Давно по ошибке был добавлен файл в локальный репозиторий - .bashgui.xml
были - git commit и git pull remote master
удален из локального репозитория с сохранением файла - git rm --cached .bashgui.xml
но в удаленном репозитории после git pull remote master файл остается

1. как удалить из удаленного репозитория?

2. Есть файл в котором содержится конфигурация приложения с паролями, есть способ сохранять файл в репозиторий но с удалением/подменой паролей?

  • Вопрос задан
  • 11247 просмотров
Решения вопроса 1
@DrunkenMaster

Вопрос неточный. Если в удаленный репозиторий попал файл с паролями, и к этому репозиторию есть доступ у других людей, то первое, что нужно сделать - поменять все пароли, которые оказались опубликованы. Потом файл копируете в надежное место, удаляете в рабочей копии, комитите, добавляете в gitignore, снова коммитите. Делаете git push. Файл можно вернуть обратно.

Если доступ есть только у вас, или принципиально хотите удалить информацию из хранилища, воспользуйтесь командами изменения существующих коммитов `git rebase --interactive` (подробнее в Изменение коммитов в Git, раздел "Изменение НЕ последнего коммита") и принудительной перезаписи истории `git push origin +master` (git push -f).

По второму вопросу. Есть следующая техника: в репозиторий добавляется файл config.ini.example с полным набором настроек, только ненастоящими паролями. В gitignore добавляется config.ini. После этого можно смело копировать config.ini.example в config.ini, вносить нужные изменения, работать.

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2

Можно попробовать сделать коммит в удалённый репозиторий, в котором данный файл будет удалён. А потом в ручном режиме просто добавить его на локальной машине и внести в игнор.

Ответ написан
Комментировать
hell0w0rd
@hell0w0rd
Просто разработчик

Самый простой вариант - удалить удаленный репозиторий и снова запушить, если вы работаете один.

Ответ написан
Комментировать
Ваш ответ на вопрос

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

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