2014-10-06 4 views
0

Я хочу удалить все предыдущие git-коммиты для определенного электронного письма, поскольку я совершил коммит с неправильным адресом электронной почты и исправил его, но теперь у меня есть дубликаты всех вещей, один с правильным адресом электронной почты и один с неправильным адресом электронной почты. (Корень @ JTP) Я пробовал:Удалить сообщение по электронной почте?

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; 
    then 
      skip_commit "[email protected]"; 
    else 
      git commit-tree "[email protected]"; 
    fi' HEAD 

и получить это взамен:

фатальный: неоднозначный аргумент '--commit-фильтр' неизвестного пересмотра или путь не в рабочем дереве. Используйте '-' для разделения pathsfrom ревизии

ответ

0

Вы говорите, что вы ввели git filter-branch --commit-filter ... и затем git filter-branch -f \ --commit-filter. Что он? В то время как первый из них может работать, эта поддельная обратная косая черта \ определенно отбросит вещи. Попробуйте удалить его.

+0

Пробовал и теперь получил '' имя файла: необходимо объединить "' на все –

+0

Кроме того, различия кажутся несущественными и имеют одинаковые результаты ... –

+0

Посмотрите на сообщение, которое вы получаете: 'неоднозначный аргумент '--commit -filter''. Вы видите пробел перед '--'? Это из-за вашей обратной косой черты. Ваш репозиторий находится в странном состоянии из-за предыдущих команд, перезагружает его и снова запускает (без обратной косой черты). – remram