Saya memiliki proyek Visual Studio yang ada di repositori saya. Saya baru-baru ini menambahkan file .gitignore di bawah proyek saya dan saya berasumsi bahwa memberitahu Git untuk mengabaikan file yang tercantum dalam file.
Masalah saya adalah bahwa semua file tersebut sudah dilacak dan sejauh yang saya tahu Git tidak akan mengabaikan file yang sudah dilacak sebelum aturan ditambahkan ke file ini untuk mengabaikannya.
Disarankan untuk menggunakan: git rm --cached
dan secara manual lepaskan mereka tetapi itu akan membawa saya selamanya untuk melewatinya satu per satu.
Saya berpikir untuk menghapus repositori dan membuatnya kembali tetapi kali ini dengan hadir file .gitignore, tetapi harus ada cara yang lebih baik untuk melakukan ini.
git rm --cached
seluruh direktori dengan-r
opsi, jika itu membantuJawaban:
Jawaban ini memecahkan masalah saya:
Pertama-tama, komit semua perubahan yang tertunda.
Kemudian jalankan perintah ini:
Ini menghapus semuanya dari indeks, lalu jalankan:
Komit:
sumber
git push origin
juga untuk mencerminkan perubahan dalam repositori jarak jauh..gitignore is now working
pesan ini . :)Buat file .gitignore, jadi untuk melakukannya, Anda cukup membuat file .txt kosong.
Maka Anda harus mengubah namanya dengan menulis baris berikut pada cmd (di mana
git.txt
nama file yang baru saja Anda buat):rename git.txt .gitignore
Kemudian Anda dapat membuka file dan menulis semua file yang tidak terlacak yang ingin Anda abaikan untuk selamanya. Misalnya, milik saya terlihat seperti ini:
`` `
Ada seluruh koleksi file .gitignore yang berguna oleh GitHub
Setelah Anda memiliki ini, Anda perlu menambahkannya ke repositori git Anda seperti file lainnya, hanya saja file tersebut harus berada di root repositori.
Kemudian di terminal Anda, Anda harus menulis baris berikut:
git config --global core.excludesfile ~ / .gitignore_global
Dari dokumen resmi:
Jika respositori sudah ada maka Anda harus menjalankan perintah ini:
Jika langkah 2 tidak berhasil maka Anda harus menulis rute lubang dari file yang ingin Anda tambahkan.
sumber
Seperti yang ditentukan di sini Anda dapat memperbarui indeks:
Dengan melakukan ini, file tidak akan muncul di
git status
ataugit diff
.Untuk mulai melacak file lagi, Anda dapat menjalankan:
sumber
Jika Anda menambahkan Anda
.gitignore
terlambat, git akan terus melacak file yang sudah dikomit. Untuk memperbaikinya, Anda selalu dapat menghapus semua instance cache dari file yang tidak diinginkan.Pertama, untuk memeriksa file apa yang sebenarnya Anda lacak, Anda dapat menjalankan:
git ls-tree --name-only --full-tree -r HEAD
Katakanlah Anda menemukan file yang tidak diinginkan dalam direktori seperti
cache/
itu, lebih aman untuk menargetkan direktori itu daripada semua file Anda.Jadi alih-alih:
git rm -r --cached .
Lebih aman menargetkan file atau direktori yang tidak diinginkan:
git rm -r --cached cache/
Kemudian lanjutkan untuk menambahkan semua perubahan,
git add .
dan komit ...
git commit -m ".gitignore is now working"
Referensi: https://amyetheredge.com/code/13.html
sumber
Berikut adalah salah satu cara untuk "membuka kembali" file apa pun yang jika tidak akan diabaikan di bawah pola pengecualian saat ini:
Ini meninggalkan file di direktori kerja Anda tetapi menghapusnya dari indeks.
Trik yang digunakan di sini adalah untuk menyediakan file indeks yang tidak ada untuk git ls-file sehingga ia berpikir tidak ada file yang dilacak. Kode shell di atas meminta semua file yang akan diabaikan jika indeksnya kosong dan kemudian menghapusnya dari indeks aktual dengan git rm.
Setelah file telah "tidak dilacak", gunakan status git untuk memverifikasi bahwa tidak ada yang penting dihapus (jika demikian sesuaikan pola kecualikan Anda dan gunakan git reset - path untuk mengembalikan entri indeks yang dihapus). Kemudian buat komit baru yang meninggalkan "mentah".
"Crud" masih akan ada di komit lama. Anda dapat menggunakan git filter-branch untuk menghasilkan versi clean dari commit lama jika Anda benar-benar membutuhkan histori bersih (nb menggunakan git filter-branch akan "menulis ulang sejarah", jadi itu tidak boleh dilakukan dengan ringan jika Anda memiliki kolaborator yang telah menarik salah satu dari komitmen historis Anda setelah "crud" pertama kali diperkenalkan).
sumber
Hapus file dari area pementasan
Tambahkan semua perubahan
Komit:
sumber
Saya pikir ini adalah cara mudah untuk menambahkan file .gitignore ke repositori yang ada.
Prasyarat :
Anda memerlukan peramban untuk mengakses akun github Anda.
Langkah
Selamat bersenang-senang!
sumber
Gunakan
git clean
Dapatkan bantuan untuk menjalankan ini
Jika Anda ingin melihat apa yang akan terjadi terlebih dahulu, pastikan untuk meneruskan sakelar -n untuk lari kering:
Untuk menghapus sampah gitingnored
Hati-hati: Anda mungkin mengabaikan file konfigurasi lokal seperti database.yml yang juga akan dihapus. Gunakan dengan risiko Anda sendiri.
Kemudian
sumber