Cara Menghapus Seluruh Riwayat Commit Git dan Memulai Repository dari Awal
Artikel

Cara Menghapus Seluruh Riwayat Commit Git dan Memulai Repository dari Awal

Ada kalanya sebuah project perlu dimulai kembali dari kondisi yang benar-benar bersih. Misalnya, karena struktur project berubah total, repository digunakan ulang untuk project baru, atau riwayat commit lama sudah tidak lagi relevan.

Dalam kondisi tersebut, Anda dapat menghapus seluruh riwayat commit Git, membuat repository baru secara lokal, lalu mengganti histori repository di GitHub. Panduan ini menjelaskan proses tersebut secara lengkap dan aman.

Penting

Tutorial ini bertujuan menghapus seluruh riwayat commit Git dan menggantinya dengan satu commit baru. Jika repository digunakan oleh banyak developer, lakukan langkah ini hanya setelah berkoordinasi dengan seluruh contributor karena histori repository akan berubah secara permanen.

Kapan metode ini digunakan?

Metode ini cocok digunakan apabila:

  • repository masih bersifat pribadi atau hanya digunakan oleh sedikit orang

  • Anda ingin memulai project dari awal tanpa membawa histori lama

  • repository digunakan kembali sebagai dasar project baru

  • struktur project telah berubah secara menyeluruh

Apabila tujuan Anda hanya menghapus beberapa commit atau menghapus file sensitif dari histori, sebaiknya gunakan metode seperti git rebase atau git filter-repo, bukan menghapus seluruh repository Git. GitHub juga menyarankan penggunaan git-filter-repo untuk menghapus data sensitif dari histori tanpa harus membuat repository baru.

Sebelum memulai

Pastikan Anda telah:

  • melakukan backup project jika diperlukan

  • menyimpan seluruh perubahan penting

  • memahami bahwa histori commit lama akan hilang

  • mengetahui apakah repository memiliki Branch Protection yang dapat mencegah force push

Langkah 1. Masuk ke folder project

Contoh:

bash
cd path/to/project

Langkah 2. Hapus folder .git

Folder .git menyimpan seluruh metadata Git, termasuk:

  • commit history

  • branch

  • tag

  • remote repository

  • konfigurasi Git lokal

Menghapus folder ini akan mengubah project menjadi folder biasa tanpa riwayat Git.

Windows PowerShell

powershell
Remove-Item -Recurse -Force .git

Windows Command Prompt (CMD)

cmd
rmdir /S /Q .git

Git Bash, Linux, dan macOS

bash
rm -rf .git

Menghapus .git tidak akan menghapus source code. Yang dihapus hanyalah metadata Git. File seperti .gitignore, README.md, atau source code project tetap berada di dalam folder project.

Langkah 3. Inisialisasi repository baru

Buat repository Git baru.

bash
git init

Jika ingin menggunakan branch utama bernama main:

bash
git branch -M main

Langkah 4. Tambahkan seluruh file

bash
git add .

Sebelum membuat commit, pastikan tidak ada file yang seharusnya tidak ikut dipublikasikan.

Periksa terlebih dahulu:

bash
git status

Langkah 5. Buat commit pertama

bash
git commit -m "Initial commit"

Repository kini hanya memiliki satu commit.

Verifikasi:

bash
git log --oneline

Output seharusnya hanya menampilkan satu commit.

Langkah 6. Hubungkan kembali ke GitHub

Karena folder .git telah dibuat ulang, seluruh konfigurasi remote sebelumnya sudah hilang.

Tambahkan kembali remote repository:

bash
git remote add origin https://github.com/USERNAME/REPOSITORY.git

Verifikasi:

bash
git remote -v

Langkah 7. Push ke GitHub

Jika repository GitHub masih kosong

Cukup jalankan:

bash
git push -u origin main

Jika repository GitHub sudah memiliki histori commit

Push biasa biasanya akan ditolak karena histori lokal dan remote tidak memiliki hubungan.

Dalam kondisi tersebut, gunakan force push:

bash
git push --force origin main

Atau, jika bekerja dalam tim dan ingin menggunakan opsi yang lebih aman:

bash
git push --force-with-lease origin main

Perintah tersebut akan mengganti histori repository di GitHub dengan histori baru dari repository lokal. Git secara default menolak perubahan histori yang bukan merupakan fast-forward, sehingga force push memang diperlukan ketika mengganti seluruh riwayat commit.

Cara memastikan histori benar-benar bersih

Periksa histori commit:

bash
git log --oneline

Periksa remote:

bash
git remote -v

Buka halaman repository di GitHub dan pastikan hanya terdapat satu commit, yaitu commit awal yang baru Anda buat.

Hal yang perlu diperhatikan

Menghapus histori commit memiliki beberapa konsekuensi:

  • seluruh SHA commit akan berubah

  • seluruh branch lama menjadi tidak relevan

  • pull request lama dapat kehilangan referensi

  • collaborator harus melakukan clone ulang atau menyinkronkan repository mereka karena histori telah berubah

GitHub juga mengingatkan bahwa penulisan ulang histori pada repository yang sudah dibagikan dapat memengaruhi seluruh clone dan fork yang sudah ada.

Kapan sebaiknya tidak menggunakan metode ini?

Hindari metode ini apabila:

  • repository digunakan banyak developer

  • histori commit masih memiliki nilai dokumentasi

  • Anda hanya ingin menghapus beberapa commit

  • Anda hanya ingin menghapus file tertentu dari histori

Dalam kasus tersebut, solusi seperti git revert, git rebase -i, atau git filter-repo umumnya lebih tepat.

Kesimpulan

Menghapus folder .git kemudian melakukan git init merupakan cara paling sederhana untuk memulai repository Git dari awal. Namun, langkah ini hanya membersihkan histori lokal. Jika repository di GitHub sudah memiliki commit, Anda tetap harus melakukan force push agar histori lama di remote digantikan dengan histori baru.

Karena force push menulis ulang histori repository, gunakan metode ini hanya ketika Anda benar-benar memahami dampaknya dan yakin bahwa seluruh histori lama memang sudah tidak diperlukan.

Cara Menghapus Seluruh Riwayat Commit Git dan Memulai Repository dari Awal

Ada kalanya sebuah project perlu dimulai kembali dari kondisi yang benar-benar bersih. Misalnya, karena struktur project berubah total, repository digunakan ulang untuk project baru, atau riwayat commit lama sudah tidak lagi relevan.

Dalam kondisi tersebut, Anda dapat menghapus seluruh riwayat commit Git, membuat repository baru secara lokal, lalu mengganti histori repository di GitHub. Panduan ini menjelaskan proses tersebut secara lengkap dan aman.

Penting

Tutorial ini bertujuan menghapus seluruh riwayat commit Git dan menggantinya dengan satu commit baru. Jika repository digunakan oleh banyak developer, lakukan langkah ini hanya setelah berkoordinasi dengan seluruh contributor karena histori repository akan berubah secara permanen.

Kapan metode ini digunakan?

Metode ini cocok digunakan apabila:

  • repository masih bersifat pribadi atau hanya digunakan oleh sedikit orang

  • Anda ingin memulai project dari awal tanpa membawa histori lama

  • repository digunakan kembali sebagai dasar project baru

  • struktur project telah berubah secara menyeluruh

Apabila tujuan Anda hanya menghapus beberapa commit atau menghapus file sensitif dari histori, sebaiknya gunakan metode seperti git rebase atau git filter-repo, bukan menghapus seluruh repository Git. GitHub juga menyarankan penggunaan git-filter-repo untuk menghapus data sensitif dari histori tanpa harus membuat repository baru.

Sebelum memulai

Pastikan Anda telah:

  • melakukan backup project jika diperlukan

  • menyimpan seluruh perubahan penting

  • memahami bahwa histori commit lama akan hilang

  • mengetahui apakah repository memiliki Branch Protection yang dapat mencegah force push

Langkah 1. Masuk ke folder project

Contoh:

bash
cd path/to/project

Langkah 2. Hapus folder .git

Folder .git menyimpan seluruh metadata Git, termasuk:

  • commit history

  • branch

  • tag

  • remote repository

  • konfigurasi Git lokal

Menghapus folder ini akan mengubah project menjadi folder biasa tanpa riwayat Git.

Windows PowerShell

powershell
Remove-Item -Recurse -Force .git

Windows Command Prompt (CMD)

cmd
rmdir /S /Q .git

Git Bash, Linux, dan macOS

bash
rm -rf .git

Menghapus .git tidak akan menghapus source code. Yang dihapus hanyalah metadata Git. File seperti .gitignore, README.md, atau source code project tetap berada di dalam folder project.

Langkah 3. Inisialisasi repository baru

Buat repository Git baru.

bash
git init

Jika ingin menggunakan branch utama bernama main:

bash
git branch -M main

Langkah 4. Tambahkan seluruh file

bash
git add .

Sebelum membuat commit, pastikan tidak ada file yang seharusnya tidak ikut dipublikasikan.

Periksa terlebih dahulu:

bash
git status

Langkah 5. Buat commit pertama

bash
git commit -m "Initial commit"

Repository kini hanya memiliki satu commit.

Verifikasi:

bash
git log --oneline

Output seharusnya hanya menampilkan satu commit.

Langkah 6. Hubungkan kembali ke GitHub

Karena folder .git telah dibuat ulang, seluruh konfigurasi remote sebelumnya sudah hilang.

Tambahkan kembali remote repository:

bash
git remote add origin https://github.com/USERNAME/REPOSITORY.git

Verifikasi:

bash
git remote -v

Langkah 7. Push ke GitHub

Jika repository GitHub masih kosong

Cukup jalankan:

bash
git push -u origin main

Jika repository GitHub sudah memiliki histori commit

Push biasa biasanya akan ditolak karena histori lokal dan remote tidak memiliki hubungan.

Dalam kondisi tersebut, gunakan force push:

bash
git push --force origin main

Atau, jika bekerja dalam tim dan ingin menggunakan opsi yang lebih aman:

bash
git push --force-with-lease origin main

Perintah tersebut akan mengganti histori repository di GitHub dengan histori baru dari repository lokal. Git secara default menolak perubahan histori yang bukan merupakan fast-forward, sehingga force push memang diperlukan ketika mengganti seluruh riwayat commit.

Cara memastikan histori benar-benar bersih

Periksa histori commit:

bash
git log --oneline

Periksa remote:

bash
git remote -v

Buka halaman repository di GitHub dan pastikan hanya terdapat satu commit, yaitu commit awal yang baru Anda buat.

Hal yang perlu diperhatikan

Menghapus histori commit memiliki beberapa konsekuensi:

  • seluruh SHA commit akan berubah

  • seluruh branch lama menjadi tidak relevan

  • pull request lama dapat kehilangan referensi

  • collaborator harus melakukan clone ulang atau menyinkronkan repository mereka karena histori telah berubah

GitHub juga mengingatkan bahwa penulisan ulang histori pada repository yang sudah dibagikan dapat memengaruhi seluruh clone dan fork yang sudah ada.

Kapan sebaiknya tidak menggunakan metode ini?

Hindari metode ini apabila:

  • repository digunakan banyak developer

  • histori commit masih memiliki nilai dokumentasi

  • Anda hanya ingin menghapus beberapa commit

  • Anda hanya ingin menghapus file tertentu dari histori

Dalam kasus tersebut, solusi seperti git revert, git rebase -i, atau git filter-repo umumnya lebih tepat.

Kesimpulan

Menghapus folder .git kemudian melakukan git init merupakan cara paling sederhana untuk memulai repository Git dari awal. Namun, langkah ini hanya membersihkan histori lokal. Jika repository di GitHub sudah memiliki commit, Anda tetap harus melakukan force push agar histori lama di remote digantikan dengan histori baru.

Karena force push menulis ulang histori repository, gunakan metode ini hanya ketika Anda benar-benar memahami dampaknya dan yakin bahwa seluruh histori lama memang sudah tidak diperlukan.

Fanha Penulis

Spesialis pembersihan malware dan pemulihan hack untuk bisnis lokal. Semua tulisan ditulis dari pengalaman langsung menangani klien.

Konsultasi Gratis via WhatsApp

Bagikan artikel ini