Github Tutorial
Bab 1 dari 1
Bab 1

Cara Menghapus Riwayat Commit dan Memulai Ulang Repository GitHub 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:

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

Remove-Item -Recurse -Force .git

Windows Command Prompt (CMD)

rmdir /S /Q .git

Git Bash, Linux, dan macOS

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.

git init

Jika ingin menggunakan branch utama bernama main:

git branch -M main

Langkah 4. Tambahkan seluruh file

git add .

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

Periksa terlebih dahulu:

git status

Langkah 5. Buat commit pertama

git commit -m "Initial commit"

Repository kini hanya memiliki satu commit.

Verifikasi:

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:

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

Verifikasi:

git remote -v

Langkah 7. Push ke GitHub

Jika repository GitHub masih kosong

Cukup jalankan:

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:

git push --force origin main

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

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:

git log --oneline

Periksa remote:

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:

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

Remove-Item -Recurse -Force .git

Windows Command Prompt (CMD)

rmdir /S /Q .git

Git Bash, Linux, dan macOS

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.

git init

Jika ingin menggunakan branch utama bernama main:

git branch -M main

Langkah 4. Tambahkan seluruh file

git add .

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

Periksa terlebih dahulu:

git status

Langkah 5. Buat commit pertama

git commit -m "Initial commit"

Repository kini hanya memiliki satu commit.

Verifikasi:

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:

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

Verifikasi:

git remote -v

Langkah 7. Push ke GitHub

Jika repository GitHub masih kosong

Cukup jalankan:

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:

git push --force origin main

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

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:

git log --oneline

Periksa remote:

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.