Bagaimana cara menghapus pelacakan versi dari proyek yang diklon dari git?

685

Saya ingin menghapus semua pelacakan versi dari direktori proyek.

Apa metode yang benar untuk melakukan ini?

Dapatkah saya melakukan perintah shell seperti:

rm -rf .git

dari direktori proyek saya atau adakah cara untuk melakukan ini sebagai perintah Git?

Saya menggunakan proyek ini untuk mempelajari Git dan menyadari saya membuat beberapa kesalahan di awal proyek dengan memindahkan, mengganti nama, dan menghapus file. Saya ingin menghapus semua pelacakan Git dan mulai dengan git init.

daustin777
sumber
1
Pertimbangkan git-arsip .
Martin v. Löwis
2
Bergantung pada seberapa buruk kesalahannya, Anda mungkin benar-benar ingin melakukan rebase interaktif dari semuanya dan hanya menyatukan satu ton komit sejak awal, tetapi simpan lebih banyak sejarah baru yang baik.
Cascabel
6
untuk pengguna windows:rd /s /q .git
Soorena

Jawaban:

686

Semua data yang digunakan Git untuk menyimpan informasi .git/, jadi menghapusnya akan berfungsi dengan baik. Tentu saja, pastikan copy pekerjaan Anda dalam keadaan yang Anda inginkan, karena semua yang lain akan hilang. .gitfolder disembunyikan jadi pastikan Anda mengaktifkan Show hidden files, folders and disksopsi.

Dari sana, Anda dapat menjalankan git inituntuk membuat repositori baru.

bobDevil
sumber
1
Saya yakin bahwa subfolder saya tidak memiliki direktori .git tersembunyi mereka sendiri, tetapi saya masih mendapatkan ikon abu-abu ketika mendorong folder tersebut ke github ... adakah hal lain yang bisa saya coba?
Kokodoko
1
Ada juga .gitconfig, jadi Anda juga harus menghapusnya.
Maximilian Mordig
pertimbangkan 'code'git rm -r --cached your_folder / tujuan saya adalah untuk mengubah folder git yang dilacak menjadi folder anak dari folder git lain yang dilacak. Orang tua baru tidak akan mengenali anak baru sampai saya menghapus cache folder anak.
Ryan Huebert
419

rm -rf .githarus cukup. Itu akan menerbangkan semua informasi terkait Git.

Lily Ballard
sumber
1
Jika Anda mendapatkan beberapa cannot unlink Permission denieddi windows, Anda dapat mematikan explorerproses di task manager, jalankan rm -rf .gitkembali dan buka kembali explorer setelah itu. ini bekerja untuk saya!
Michael
10
Jika ada Git Bashdi windows, itu juga akan berfungsi.
Viral
1
apa -rfartinya
nilon
13
-rberarti "rekursif", sehingga akan menghapus seluruh isi folder alih-alih kesalahan karena folder tidak kosong, dan -fmembuatnya tidak bertanya apakah Anda benar-benar yakin tentang menghapus barang.
Lily Ballard
1
@ Lucky_girl Ini akan menghapus semua status Git dari checkout Anda. Tidak ada cabang, tidak ada sejarah, tidak ada remote, tidak ada sama sekali. Semua itu disimpan dalam .gitdirektori. Tanpanya, Anda benar-benar tidak memiliki repositori git lagi.
Lily Ballard
96

Selain langkah-langkah di bawah ini, Anda mungkin ingin juga menghapus file .gitignore.

  • Pertimbangkan menghapus file .gitignore jika Anda ingin menghapus jejak Git di proyek Anda.

  • ** Pertimbangkan untuk meninggalkan file .gitignore jika Anda ingin memasukkan kembali Git ke dalam proyek.

Beberapa kerangka kerja dapat secara otomatis menghasilkan file .gitignore sehingga Anda mungkin ingin meninggalkannya.


Sistem operasi berbasis Linux, Mac, atau Unix

Buka terminal dan arahkan ke direktori proyek Anda, yaitu - cd path_to_your_project.

Jalankan perintah ini:

rm -rf .git*

Ini akan menghapus pelacakan Git dan metadata dari proyek Anda. Jika Anda ingin mempertahankan metadata (seperti .gitignore dan .gitkeep), Anda hanya dapat menghapus pelacakan dengan menjalankan rm -rf .git.


Windows

Menggunakan command prompt

The rmdiratau rdperintah tidak akan menghapus / menghapus file atau folder tersembunyi dalam direktori yang Anda tentukan, sehingga Anda harus menggunakan delperintah untuk memastikan bahwa semua file yang dihapus dari .gitfolder.

  1. Buka prompt perintah

    1. Entah klik Startkemudian Runatau tekan Kunci Windowstombol dan rpada saat yang sama.

    2. Ketik cmddan tekan enter

  2. Arahkan ke direktori proyek, yaitu - cd path_to_your_project

  1. Jalankan perintah ini

    1. del /F /S /Q /A .git

    2. rmdir .git

Perintah pertama menghapus semua file dan folder di dalam .gitfolder. Yang kedua menghapus .gitfolder itu sendiri.

Tidak ada command prompt

  1. Buka file explorer dan arahkan ke proyek Anda

  2. Tampilkan file dan folder tersembunyi - lihat artikel ini untuk panduan visual

    1. Di menu tampilan pada bilah alat, pilih Options

    2. Di Advanced Settingsbagian tersebut, temukan di Hidden files and Foldersbawah Files and Foldersdaftar dan pilihShow hidden files and folders

  3. Tutup menu opsi dan Anda akan melihat semua folder dan file tersembunyi termasuk .gitfolder.

    Hapus .gitfolder Hapus .gitignorefile ** (lihat catatan di bagian atas jawaban ini)

Matt C
sumber
1
rmdir .gittidak berfungsi karena ada folder di bawahnya.
Dale
Dale, lihat baris di bawah rmdir .git. Ini menjelaskan bahwa perintah di atas rmdir .gitdigunakan untuk menghapus semua file dan folder dalam folder .git, sebelum rmdirperintah menghapus folder itu sendiri.
Matt C
1
Anda mungkin juga melakukannya rd /s /q .git, yang akan meniup folder dan semua yang ada di dalamnya
Greg
Untuk windows, rmdir /S .gitmenyelesaikan pekerjaan. Terima kasih untuk ini.
Eder Luis Jorge
70

Ini bukan pilihan cerdas untuk memindahkan semua .git*dengan tangan, terutama ketika .gitfile - file ini disembunyikan dalam sub-folder seperti kondisi saya: ketika saya menginstal Skeleton Zend 2 oleh komposer + git, ada cukup banyak .gitfile yang dibuat dalam folder dan sub-folder. folder.

Saya mencoba rm -rf .gitpada shell GitHub saya, tetapi shell tidak dapat mengenali parameter -rfdari Remove-Item.

www.montanaflynn.me memperkenalkan perintah shell berikut untuk menghapus semua .gitfile satu kali, secara rekursif! Ini benar-benar berfungsi!

find . | grep "\.git/" | xargs rm -rf
John Yin
sumber
5
"Saya mencoba 'rm -rf .git' di shell Github saya, tetapi shell tidak dapat mengenali parameter '-rf' dari Remove-Item." - Karena itu rmadalah alias PowerShell untuk remove-item. Dan argumen -rf* nix shell rm. Untuk PowerShell, gunakan rm -recursive -forcesaja.
KFL
14
BERBAHAYA! grep .gitakan mencocokkan file suka legit.gifatau anithing dengan "git" di tengah nama file! Silakan hapus atau edit jawabannya !!!
Pamatt
4
Perbarui untuk mencocokkan hanya pada git dirs: find. | grep "\ .git /"
Andrew
3
Masih belum cukup aman: ini akan menangkap file dan direktori yang berakhir dengan .git. Seharusnya grep "^\.git/"; bahkan lebih baik (dan lebih cepat) akan filter dengan nama di finddoa: find . -name .git.
pvgoran
Lakukan perintah berikut: find -name .git | xargs rm -rfdan find -name .gitignore | xargs rm -rf.
Pengembang Marius Žilėnas
14

Saya bekerja dengan lingkungan Linux. Saya menghapus semua file dan folder Git secara rekursif:

rm -rf .git

rm -rf .gitkeep
Nitya Kumar
sumber
9

Di lingkungan Windows Anda dapat menghapus pelacakan Git dari direktori proyek dengan cukup mengetik di bawah ini.

rd .git /S/Q
Rukshan Dangalla
sumber
7

Dari jalankan folder root

find . | grep .git

Tinjau kecocokan dan konfirmasikan hanya berisi file yang ingin Anda hapus dan sesuaikan. Setelah puas, jalankan

find . | grep .git | xargs rm -rf

Kamesh Jungi
sumber
5

Cara termudah untuk menyelesaikan masalah ini adalah dengan menggunakan baris perintah. Ketikkan perintah ini, rm -R .git/lalu Enter ... ATAU rm -rf .git/Tekan Enter ...

Emeka Augustine
sumber
2

Pengguna Command Prompt Windows (cmd):

Anda dapat menghapus '.git' secara rekursif di dalam folder proyek sumber menggunakan perintah baris tunggal.

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
SridharKritha
sumber