0

Я хотел бы поставить старый Git Repo, который у меня есть для публичного сайта на GitHub. Я не могу этого сделать, потому что репо содержит исходный сайт и его файлы, а также текущий. Текущий - полная переработка старого сайта и, таким образом, не содержит файлов с ним. К сожалению, когда я изначально создавал его, я разветвлялся в репо и переписывал его, а затем объединил его обратно в master.Как сделать так, чтобы Git repo начинал с определенной фиксации?

Я не хочу, чтобы старая версия веб-сайта была общедоступной, но я хочу иметь возможность добраться до нее, чтобы проверять файлы и содержимое, если мне нужно что-то пересмотреть. Я хотел бы иметь свое репо для начала нового сайта, с которого я первоначально был разветвлен, сохраняя мою недавнюю историю фиксации.

У меня есть некоторые идеи, как это возможно сделать, но ничего конкретного. Вот что я имею в виду:

  1. Rename это репо в -old и запустить некоторые фантазии скрипт, который принимает все совершает с определенной начальной точки и затем добавляет к новому репо.
  2. Возьмите первоначальное репо до того места, где оно было изменено, и создайте новую версию -old. Каким-то образом перепишите историю Git в текущем репо с фиксации на новый.
  3. Создайте ветку master и как-нибудь перепишите историю Git в текущем репо с фиксации на новый.
  4. [НЕ ХОТИТЕ ЭТОТ] Создайте новое репо и начните сначала.
+0

Ваш ответ здесь: http://stackoverflow.com/questions/34519665/how-to-move-head-checkout-revert-reflog-reset/34519716#34519716. не смог проголосовать за тит, если вам это нравится. – CodeWizard

+0

Я не вижу, как это решает мою проблему. Это только позволяет мне вернуться во времени, а не удалять прошлое. – Sawtaytoes

ответ

1

Вы ищете git rebase, который переписывает историю.

Перейдите на ветвь, которую вы хотите переписать, запустите git rebase --root --interactive, затем перепишите историю в содержание вашего сердца.

+0

Есть ли простой способ сделать то, что я хочу, или мне нужно пройти через сотни старых коммитов вручную и сказать, чтобы удалить их? – Sawtaytoes

+0

Используйте свой любимый редактор, чтобы удалить все коммиты выше строки, которую вы хотите сразу. – SLaks

+0

Я получил его, работая с Sublime Text, и обнаружил, что после того, как я переустановил его, он сделал это только на одной ветке и заново создал все фиксации в новом филиале, который был установлен сегодня, а не даты, когда произошли коммиты. – Sawtaytoes

Смежные вопросы