Git force push --force --all не обновляет все ветки

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

Мое понимание с git не так уж велико

Я выполнил приведенную ниже команду, чтобы полностью удалить любую ссылку на конкретный файл из всех веток в моем репо, и все они были перезаписаны.

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch fileA.sh" -- --all

я запустил, а затем выполнил приведенные ниже команды, чтобы очистить репозиторий на моем локальном компьютере.

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

Ниже приведены ветки, которые у меня есть, наряду с ветками удаленного отслеживания.

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
  remotes/origin/mbyousaf2020-master-patch-95874
  remotes/origin/test

Однако при запуске git push --all --force обновляется только главная ветка в моем репо. Как также обновить оставшиеся ветки удаленного отслеживания?

:qabash $ git push --all --force
Enumerating objects: 316, done.
Counting objects: 100% (316/316), done.
Delta compression using up to 12 threads
Compressing objects: 100% (114/114), done.
Writing objects: 100% (314/314), 30.10 KiB | 10.03 MiB/s, done.
Total 314 (delta 195), reused 276 (delta 188)
remote: Resolving deltas: 100% (195/195), completed with 1 local object.
To gitlab.com:qa.git
 + a28475e...40053dd master -> master (forced update)

Какую команду мне нужно запустить, чтобы обновить все мои ветки и полностью удалить любую ссылку на файл во всех моих ветках?

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы сами дали ответ, когда перечисляли ветки:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
  remotes/origin/mbyousaf2020-master-patch-95874
  remotes/origin/test

Ветки remotes/origin не ваши; они являются филиалами удаленного отслеживания. Ты имеет только ветку одинmaster. Поэтому git push --all толкает все ветки, которые у вас есть, а именно эту ветку, master. Git ведет себя именно так, как ожидалось.

I have 3 branches where i want this file to be removed from the commits.

Нет, не знаешь. Вы сами доказали, что у вас всего одна ветка, а именно master.

благодарю за разъяснение. Но тогда какую команду мне запустить, чтобы обновить все ветки отслеживания remotes/origin?

Bilal Yousaf 18.03.2022 15:51

@BilalYousaf: Вы делаете это так же, как делал для мастера, с той лишь разницей, что вам нужно сначала вытащить эти ветки, чтобы они были «своими» (в вашем локальном репозитории git). Чтобы освоиться с этим, вы можете попробовать некоторые главы в git-книге, которая доступна онлайн бесплатно.

hakre 18.03.2022 16:03

Вы должны создать локальную ветку на основе ветки удаленного отслеживания, отредактировать ее и отправить.

matt 18.03.2022 16:18

На моей машине, если бы я сказал git switch develop, Git создал бы ветвь develop на основе ветки удаленного отслеживания origin/develop и настроил бы последнюю как вышестоящую по отношению к первой.

matt 18.03.2022 17:04

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