Если Вы могли бы сделать все свое продвижение от другого ответвления, я думаю, что Вы могли бы настроить то ответвление, чтобы иметь его собственный отдельный репозиторий для продвижения к:
git checkout master
git branch outbound
git remote add destination <some url>
git config branch.outbound.remote destination
я не попробовал это, и Вы, возможно, должны сделать еще некоторую работу для создания полного решения. Это также не могло бы работать на Вас, если необходимо продвинуть от ведущего устройства.
git-merge --squash
с последующим git commit
должен сделать это.
Похоже, git rebase --interactive
- это то, что вам нужно. В этом разделе книги Git объясняется:
Это часто используется для переписывания вашего
собственные объекты фиксации, прежде чем нажимать их
где-то. Это простой способ разделить,
объединить или изменить порядок коммитов перед
делиться ими с другими. Вы также можете
используйте его для очистки коммитов, которые вы
вытащил от кого-то при их применении
локально.