На моем локальном мерзавце repo у меня есть много фиксаций, которые включают 'секретные' строки подключения :-)
Я не хочу эту историю на GitHub, когда я продвигаю его там.
По существу я хочу продвинуть все, что я имею, но хочу избавиться от большого количества истории.
Возможно, я лучше работал бы в ответвлении за всем своим dev, затем просто объединившись назад с ведущим устройством прежде, чем фиксировать... затем история для ведущего устройства просто будет фиксацией, которую я хочу.
Я попытался выполнить переоснову:
git rebase –i HEAD~3
Это возвратилось 3 фиксации, и затем я мог удалить фиксацию.
Однако столкнулся с автоматическим избирательным подходом, отказавшим, и это стало довольно сложным.
Любые мысли значительно не ценили... грандиозного предприятия к банке история, и запустите снова, если это становится слишком твердым :-)
Вы можете разветвить свою текущую работу, перемотать мастер, а затем выбрать последний коммит обратно на мастер:
git branch secret
git reset --hard HEAD~3
git cherry-pick secret
На рисунках,
A--B--C--D--E (master)
после секрет ветки git
:
A--B--C--D--E (master, secret)
после git reset --hard HEAD ~ 3
:
A--B (master) \ C--D--E (secret)
после git cherry-pick secret
:
A--B--E' (master) \ C--D--E (secret)
Наконец , если вы git checkout secret; git rebase master
, вы можете получить:
A--B--E' (master) \ C--D (secret)