Bagaimana saya bisa mengabaikan folder bin dan obj dari repositori git?
111
Saya ingin mengabaikan folder bin dan obj dari repositori git saya. Seperti yang saya ketahui, tidak ada cara mudah untuk melakukan ini di .gitignore. Jadi, apakah ada cara lain? Menggunakan solusi bersih di Visual Studio?
Ini berfungsi dengan baik untuk saya - Saya menambahkan kata 'bin' dan 'obj' sebagai baris terpisah di file .gitignore saya
Tim Robinson
1
Dan jika solusi terdiri dari banyak proyek, bukan hanya satu?
chester89
Dapatkah Anda memposting dengan tepat apa yang Anda coba dan apa yang tidak berhasil. objdan bindi level teratas .gitignore harus mengabaikan semua yang dipanggil objatau bindi semua level yang lebih rendah.
CB Bailey
2
Pemahaman saya adalah bahwa konten .gitignore berlaku di setiap subdirektori, sehingga 'bin' dan 'obj' bekerja di mana-mana. Akan memposting .gitignore saya sebagai jawaban.
Tim Robinson
Jawaban:
164
Saya tidak yakin mengapa ini tidak berhasil untuk Anda. Jika itu membantu, berikut adalah file .gitignore khas dari salah satu proyek Visual Studio / git saya:
Saya juga menambahkan packageskarena Anda dapat mengunduhnya dengan mudah dari NuGet
Michal
1
itu tidak bekerja ketika Anda pertama kali mengkomit semua file dan kemudian menambahkan file .gitignore ke repo Anda dan mengkomitnya. File yang baru diabaikan masih akan ditampilkan sebagai diubah (jika Anda membangun kembali, misalnya).
@BigTFromAZ Anda harus menambahkan itu sebagai jawaban, itu jauh lebih baik daripada yang diterima!
Avrohom Yisroel
61
hanya dengan membuat entri di gitignore mungkin tidak mengabaikan file, Anda mungkin perlu mengkomitnya. Saya menggunakan metode berikut dan bekerja untuk saya
git rm -r --cached .
git add.
kemudian
git commit -am "Remove ignored files"
Namun, ini mengabaikan folder skrip saya yang saya masukkan nanti ke dalam repositori.
Ini bekerja dengan baik. Tetapi Vscode tidak dapat menemukan kode yang dimodifikasi. Saya mengubah sesuatu sendiri dan saya mendorongnya ke master asal. Kemudian berhasil. :)
Dentrax
Saya punya solusi dengan banyak proyek dan untuk beberapa alasan git menambahkan. tidak pernah selesai.
Chucky
Great Arvind !, seorang pengembang pemula menggabungkan semua bin / dan obj / ke cabang kerja kami (melewati kebijakan ... saya tidak tahu caranya!) Dan ini adalah cara untuk menghapus semua file tersebut dari repo.
equintas
Saya pemula (setidaknya untuk git), saya melakukan ini untuk diri saya sendiri. Tidak pernah terpikir untuk rm dan kemudian menambahkan kembali karena saya tidak mengerti bahwa git rm hanya menghapus item dari indeks dan bukan disk. Jadi jika saya mengerti dengan benar, dua perintah pertama Anda membangun kembali indeks dengan menghapus semuanya dari indeks dan menambahkan semuanya kembali, menerapkan filter .gitignore. Kemudian komit membuatnya jadi di repositori. Sangat pintar.
BigTFromAZ
Bagus! Ini bekerja dengan sangat baik untuk saya. semua .vs, obj, bin dan file lain yang diabaikan.
Stanley Okpala Nwosa
9
Jika Anda menggunakan Visual Studio maka ada cara sederhana untuk melakukannya.
Buka Penjelajah Tim
Klik pada pengaturan
Pengaturan Repositori
Di bawah bagian Abaikan & Atribut file Klik Tambah di samping Abaikan file.
Ini akan membuat file .gitignore default, yang akan mengabaikan sebagian besar folder & file umum yang akan digunakan oleh framework / bahasa.
Info bagus, tapi maksudnya semua proyek Visual Studio dalam solusi ini bukan SEMUA proyek di mesin.
AhHatem
2
Meskipun kemungkinan besar dia tidak akan pernah tertarik untuk melakukan folder bindan objdalam solusi APAPUN. :)
MEMark
1
Jika Anda telah memasukkan folder bin dan obj sebelumnya, menambahkannya ke .gitignore tidak akan menghapusnya secara otomatis. Anda perlu berkomitmen untuk menghapus folder ini dengan misalnya
git rm -rf objatau git rm -rf yourProject/obj
kemudian melakukan penghapusan
Dalam kasus saya, folder bin dan obj disarangkan di bawah folder Proyek dari file root .gitignore, jadi saya harus menambahkannya seperti di bawah ini:
[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj
Ganti PROJECT_FOLDER_NAME dengan nama folder proyek Anda
obj
danbin
di level teratas .gitignore harus mengabaikan semua yang dipanggilobj
ataubin
di semua level yang lebih rendah.Jawaban:
Saya tidak yakin mengapa ini tidak berhasil untuk Anda. Jika itu membantu, berikut adalah file .gitignore khas dari salah satu proyek Visual Studio / git saya:
sumber
packages
karena Anda dapat mengunduhnya dengan mudah dari NuGethanya dengan membuat entri di gitignore mungkin tidak mengabaikan file, Anda mungkin perlu mengkomitnya. Saya menggunakan metode berikut dan bekerja untuk saya
kemudian
Namun, ini mengabaikan folder skrip saya yang saya masukkan nanti ke dalam repositori.
sumber
Jika Anda menggunakan Visual Studio maka ada cara sederhana untuk melakukannya.
Ini akan membuat file .gitignore default, yang akan mengabaikan sebagian besar folder & file umum yang akan digunakan oleh framework / bahasa.
sumber
bin
danobj
di Windows Explorersumber
Jika Anda ingin mengabaikan bin dan obj di SEMUA proyek Anda, maka Anda dapat menggunakan (dari halaman manual gitignore )
core.excludesfile dapat diatur dalam file konfigurasi yang ~ / .gitconfig di Unix - Saya tidak tahu di mana itu di bawah Windows
sumber
bin
danobj
dalam solusi APAPUN. :)Jika Anda telah memasukkan folder bin dan obj sebelumnya, menambahkannya ke .gitignore tidak akan menghapusnya secara otomatis. Anda perlu berkomitmen untuk menghapus folder ini dengan misalnya
git rm -rf obj
ataugit rm -rf yourProject/obj
kemudian melakukan penghapusansumber
Jika Anda mencoba melalui struktur pohon sumber dan masih file abaikan tidak masuk, buka alat -> opsi-> Git lalu pilih lokasi .gitignore
sumber
Dalam kasus saya, folder bin dan obj disarangkan di bawah folder Proyek dari file root .gitignore, jadi saya harus menambahkannya seperti di bawah ini:
[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj
Ganti PROJECT_FOLDER_NAME dengan nama folder proyek Anda
sumber