Видалити історію попередніх коммітів, та почати "з нуля"

Використовуємо git checkout --orphan newBranch - що створює гілку без прив’язки до батьківської гілки і без попередньої історії.

ChatGPT каже:

Видалення всієї історії попередніх коммітів у Git може бути небезпечним, оскільки це може призвести до втрати даних. Проте, якщо ви впевнені, що хочете розпочати "з нуля", то ось декілька кроків для цього:

  1. Створіть новий репозиторій в GitHub:

    • Зайдіть на ваш обліковий запис GitHub та створіть новий репозиторій.

    • Не ініціалізуйте його з README, .gitignore або ліцензією, так як ми будемо використовувати існуючий локальний репозиторій.

  2. Локально видаліть попередні комміти:

    • Перейдіть до кореневого каталогу вашого локального репозиторію за допомогою командного рядка.

    • Виконайте наступні команди для видалення попередніх коммітів:

      git checkout --orphan newBranch
      git add -A
      git commit -am "Initial commit"
      git branch -D main  # Видалення попередньої гілки
      git branch -m main
      git push -f origin main

    Переконайтеся, що ви замінюєте "main" на назву вашої основної гілки (наприклад, "master", "main", тощо).

  3. Оновіть віддалений репозиторій:

    • Після виконання команд ви вже повинні мати локальний репозиторій із новою історією. Тепер вам потрібно оновити віддалений репозиторій на GitHub:

      git push -f origin main

    Знову переконайтеся, що ви використовуєте правильну назву гілки.

Будьте обережні при використанні опції -f (force) при git push -f, оскільки це перезаписує історію і може викликати проблеми для інших співробітників, які вже склонували репозиторій. Також, не забудьте зробити резервну копію важливих даних перед видаленням історії.ію попередніх коммітів, та почати "з нуля"

Простішій варінт

На GitHub сторюємо новий, мінімально порожній, репозиторій (ім’я - або нове, або перейменувати старий і дати те ім’я, що було - новому).

Клонуємо його на локальний компьютер.

У існуючому проекті директорію .git видаляємо, а замість нього записуємо щойно створений .git з клонованого репозиторію.

Далі все просто: git add --all, git commit..., git push... .

В GitHub запишеться чистий проект без історії.

Перед тим як видалити старий репозиторій з GitHub не забуть про старі Issues та все інше, що необхідне...

Last updated