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?

chester89
sumber
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:

*.suo
*.user
_ReSharper.*
bin
obj
packages
Tim Robinson
sumber
4
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).
vlad2135
7
Saya baru-baru ini menggunakan file .gitignore yang disarankan yang ditemukan di sini: github.com/github/gitignore/blob/master/VisualStudio.gitignore dengan sukses besar.
BigTFromAZ
1
@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.

Arvind Krmar
sumber
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.

  1. Buka Penjelajah Tim
  2. Klik pada pengaturan
  3. Pengaturan Repositori
  4. 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.

masukkan deskripsi gambar di sini

Nilay
sumber
3
  • Temukan folder bindan objdi Windows Explorer
  • Klik kanan TortoiseGit> Hapus dan tambahkan ke daftar abaikan> bin
  • Klik kanan TortoiseGit> Hapus dan tambahkan ke daftar abaikan> obj
Denys Wessels
sumber
1
Ini bekerja dengan sempurna. terima kasih @Denys Wessels
Biswajit Panday
2

Jika Anda ingin mengabaikan bin dan obj di SEMUA proyek Anda, maka Anda dapat menggunakan (dari halaman manual gitignore )

Pola yang dibaca dari file yang ditentukan oleh variabel konfigurasi core.excludesfile.

core.excludesfile dapat diatur dalam file konfigurasi yang ~ / .gitconfig di Unix - Saya tidak tahu di mana itu di bawah Windows

mmmmmm
sumber
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

Raphael Pinel
sumber
0

Jika Anda mencoba melalui struktur pohon sumber dan masih file abaikan tidak masuk, buka alat -> opsi-> Git lalu pilih lokasi .gitignore masukkan deskripsi gambar di sini

makdu
sumber
0

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

pk_code
sumber