BFG Repo Cleaner - удаленные файлы все еще в фиксации изменений

Мне нужно удалить файлы конфигурации из моего веб-приложения и из истории git. Я сделал это с помощью инструмента очистки репозитория bfg. Я прошел шаги, описанные в документации:

  1. git clone --mirror url.git
  2. java -jar bfg-1.13.0.jar --delete-files "{App.config,Web.config}" repo-name.git
  3. git reflog expire --expire=now --all && git gc --prune=now --aggressive

Я отправил результат в новый репозиторий в gitlab. Файлы исчезли из истории. Я могу проверить старый коммит, и файлы не приходят.

НО, когда я смотрю на детали фиксации с использованием файла Web.config, в разделе изменений отображается разница файла Web.config. Так что еще можно увидеть текст конфигурационных файлов.

Я что-то упустил при использовании инструмента bfg? Или это то, что инструмент не изменит? Как я могу удалить файлы из сводки изменений фиксации?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
1 702
2

Ответы 2

Разве дело не только в том, что файлы *.config есть только в последнем коммите?

Этот коммит остался нетронутым BFG, так что, возможно, это то, что вы видите....

Из документ BFG:

Your current files are sacred...

The BFG treats you like a reformed alcoholic: you've made some mistakes in the past, but now you've cleaned up your act. Thus the BFG assumes that your latest commit is a good one, with none of the dirty files you want removing from your history still in it. This assumption by the BFG protects your work, and gives you peace of mind knowing that the BFG is only changing your repo history, not meddling with the current files of your project.

Это не последний коммит. Я вижу разницу в коммитах еще в истории.

tamster008 27.03.2019 03:33

BUT when I look at the details of commit involving Web.config file the changes section shows the diff of the Web.config file. So it is still possible to see the text of the configuration files.

К сожалению, есть несколько нюансов в интерпретации того, как проходило переписывание истории, и приведенное выше описание расплывчато — где вы это видите? Выполняете ли вы команду сравнения с вашим локальным репозиторием или просматриваете URL-адрес в GitLab? - предоставление снимка экрана, URL-адреса или примера команды Git, которую вы вызываете, было бы полезно для диагностики здесь.

Я собираюсь предположить, что вы смотрите на такой URL-адрес, где идентификатор фиксации (например, e081c0cba2dd5b1a19d22b44918022f72035434c) является частью URL-адреса:

https://gitlab.com/gitlab-org/gitlab-ce/commit/e081c0cba2dd5b1a19d22b44918022f72035434c

Здесь важно понимать, что идентификаторы коммитов — это хэш содержимого файлового дерева этого коммита и всей истории коммитов, предшествующих этому коммиту. Поэтому, если вы измените историю фиксации, вы получите новый идентификатор фиксации. Если вы посмотрите на старый идентификатор фиксации, вы увидите старые данные фиксации и старое дерево файлов фиксации.

Когда это пройдет?

В конце концов GitLab запустится git gc в вашем репозитории, и этот URL-адрес — с этим идентификатором коммита — больше не будет доступен. Вы также можете попросить поддержку GitLab запустить git gc:

Другие вопросы по теме