В самом git
нет действительно надежного способа получения такого рода информации. (Возможно, что некоторые программы для git-хостинга могут сохранять записи о принудительных толчках, напоминающие рефлоги, но я ничего об этом не знаю; если вы используете определенный хостинг-пакет, вы можете обратиться к его документации.)
Помимо поиска клона, который не принял новую историю, вы также можете получить необходимую информацию из повторных журналов клона даже после того, как он принял новую историю - но эти журналы являются локальными и временными, так что это не гарантировано.
(В зависимости от того, как размещен ваш пульт, вы могли бы также иметь возможность ссылаться на его reflogs, если он сохраняет их и если вы можете получить к ним доступ. Но даже когда все эти ifs сломай свой путь, гарантии нет, потому что повторные журналы временные.)
Вот почему git push -f
опасный инструмент; и рискуя быть тупым, если понимание разработчиком git не дошло до такой степени, что они понимают, насколько это опасно, то этому разработчику не следует предоставлять доступ к принудительному толкованию ссылок, которыми делятся другие разработчики.
Вы можете настроить git remote на отклонение всех нажатий без ускоренной перемотки вперед (даже если принудительно); см. receive.denyNonFastForwards
в git config
документах.
Если вам нужен более точный контроль, вам снова придется полагаться на программное обеспечение хостинга для его предоставления.