Вы обнаружили проблему с изменением публичной истории: каждый, кто видел это изменение, должен согласиться изменить его таким же образом.В этом простом случае они, вероятно, могут получить новую правильную версию, выполнив ту же команду rebase
, что и вы:
git-rebase --onto <sha of commit 4> <sha commit 3> master
Это обновит их локальный мастер, чтобы снова согласиться с веткой удаленного мастера иони могут продолжаться как обычно.
Невозможно автоматически вызвать это.Самым простым способом для людей, которые просто отслеживали master
или перенесли все изменения, которые они сделали, когда вы делали эту перебазировку, может быть выполнение git reset --hard origin/master
, но это сотрет все локальные коммиты, сделанные в текущей ветви, которая не былаmaster
, когда вы делали свою перебазировку .
Альтернативный способ добиться того же - с git revert
.Это просто добавит новый коммит, который противоположен другому коммиту.Это не редактирует историю, оно просто добавляет ее таким образом, чтобы отменить ее.Это приводит к тому, что фиксация проблемы по-прежнему отображается в git log
и связанных с ней командах, но не вызывает проблем для всех остальных.