«git filter-branch» успешно используется для смены коммиттера/автора, но изменения не отражаются на github

Недавно я заменил автора, коммиттера и их адреса электронной почты во всех моих локальных коммитах, используя следующую команду:

git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldname" ];
then
    GIT_COMMITTER_NAME="newname";
    GIT_COMMITTER_EMAIL="newaddr";
    GIT_AUTHOR_NAME="newname";
    GIT_AUTHOR_EMAIL="newaddr";
fi

if [ "$GIT_AUTHOR_NAME" = "oldname" ];
then
    GIT_COMMITTER_NAME="newname";
    GIT_COMMITTER_EMAIL="newaddr";
    GIT_AUTHOR_NAME="newname";
    GIT_AUTHOR_EMAIL="newaddr";
fi
' -- --all

Обновления сразу видны локально (например, в моей среде SourceTree). Однако после принудительного размещения измененного репозитория на GitHub…

git push -f origin master

… два отдельных элемента упорно отказываются обновлять своих коммиттеров и авторов: файл Gemfile.lock и каталог Views.

Также обратите внимание, что:

  1. Это второй раз, когда я выполняю такого рода операции в этом репозитории. Я считаю, что я не столкнулся с такими проблемами в первый раз.

  2. Поиск моего старого имени в хранилище…

    $ find . "<старое имя">
    

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

Тогда мой вопрос: как я могу изменить коммитера/автора двух "упрямых" файлов на GitHub?

6
задан BorromeanNot 18 May 2014 в 16:41
поделиться