Как убрать устаревшие переписанные коммиты в git после git-filter-branch - PullRequest
0 голосов
/ 11 мая 2011

Мне нужно было удалить пару устаревших файлов из истории git, поэтому я следовал подходу использования «git filter-branch ...», как предлагалось в различных вопросах и в руководстве по git. После выполнения команды я теперь вижу все переписанные коммиты в моем «git log», поэтому вместо первоначальных 10 коммитов у меня теперь около 30 коммитов (после удаления 3 файлов).

Я попробовал предложения, приведенные в различных ответах, чтобы удалить ".git / refs / originals", а затем "git reflog expire ..." и "git gc --aggressive --prune" и т. Д., Но у меня все еще есть 30 совершает. Я также попробовал предложить клонировать мой репозиторий в новый, и новый также имеет 30 коммитов. Я также нажал на github, и теперь у него 30 коммитов.

Есть ли что-то, чего мне не хватает, чтобы избавиться от перезаписанных коммитов (без выполнения операции rebase). Моя цель - избавиться от «дублирующих» коммитов, а не раздавить коммиты.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Какие именно команды вы выполняли? Вероятно, лучше всего сделать свежий клон этого репо и попробовать еще раз. На help.github есть руководство, которое может помочь.

0 голосов
/ 11 мая 2011

Вы также можете попробовать rebase -i --preserve-merges или скрипт git cherry-pick --no-commit, чтобы сделать то, что вы хотите.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...