Если я правильно помню, Linux управляет вещами немного по-другому, чем вы предлагаете, из-за огромного количества разработчиков, активно участвующих в различных подсистемах.
В каждой основной подсистеме ядра есть «лейтенант», ответственныйза спор о коммитах разработчиков, вносящих вклад в эту подсистему.Каждый лейтенант ручается за качество своих суб-разработчиков и сообщает Линусу, когда у них есть готовые изменения от него.Линус, единственный человек, имеющий доступ к репо «мастер», затем извлекает свои изменения по одному.Если возникнут конфликты между лейтенантами Джо и Бобом, он скажет Джо вытащить из Боба и позаботиться о слиянии, а затем снова вытянет из Джо.идеально.Общедоступное удаленное репо, к которому могут обращаться все ваши разработчики, что позволяет им обрабатывать конфликты и слияния.На самом деле нет необходимости изменять коммиты, кроме как их слияние, что должно быть сделано для вас.Если вам нужно изменить код, вы можете создать новые коммиты и отправить их в общедоступное репозиторий git, чтобы ваши разработчики могли их отключить.
Я не знаю, существует ли какой-либо безопасный способ изменить коммиты, которые существуютв нескольких репозиториях.Как только вы это сделаете, ваши репозитории разошлись, и вы не сможете толкать / тянуть без прыжков через обручи .