Tidak dapat mengabaikan .idea / workspace.xml - terus bermunculan

237

Dengan menggunakan PHPStorm, saya mencoba mengabaikan workspace.xmlyang muncul setiap kali saya mencoba membuat git commit.

.gitignorePenampilan saya seperti:

/.idea/
.idea/workspace.xml

Karena pada suatu titik file itu dikomit, saya juga telah mengeksekusi:

git rm --cached .idea/workspace.xml dan kemudian melakukan penghapusan, didorong ke repo telanjang.

Tetapi file tersebut terus muncul kemudian ketika saya melakukan perubahan dalam proyek.

Ada ide tentang apa yang saya lewatkan?

Valentin Despa
sumber
Sudah mencoba semuanya di bawah ini, ditambahkan ke gitignore, tetapi masih terus kembali, mengabaikan gitignore.
Olaf
Sepertinya pertanyaan yang sama . Lihatlah dan lihat ...
Luca Ballore
Pilih tautan ini: stackoverflow.com/questions/8156299/… . Sepertinya masalah Anda sama.
Luca Ballore

Jawaban:

289

Saya menghadapi masalah yang sama, dan itu mendorong saya ke dinding. Masalahnya akhirnya adalah bahwa folder .idea SUDAH dilakukan ke repo sebelumnya, dan sehingga mereka dilacak oleh git terlepas dari apakah Anda mengabaikannya atau tidak. Saya akan merekomendasikan yang berikut ini, setelah menutup RubyMine / IntelliJ atau IDE apa pun yang Anda gunakan:

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

Setelah itu pastikan untuk mengabaikan .idea di .gitignore Anda

Meskipun cukup untuk mengabaikannya di .gitignore repositori, saya menyarankan Anda mengabaikan dotfile IDE Anda secara global.

Kalau tidak, Anda harus menambahkannya ke setiap .gitgnore untuk setiap proyek yang Anda kerjakan. Juga, jika Anda berkolaborasi dengan orang lain, maka praktik terbaiknya adalah untuk tidak mencemari .gitignore proyek dengan konfiguasi pribadi yang tidak spesifik dengan kode sumber proyek.

amerdidit
sumber
Perintah terakhir adalah "mv ../.idea_backup .idea" alih-alih "git mv ../.idea_backup .idea" untuk menghindari kesalahan git
Leo Caseiro
2
Saya harus melakukan git rm .ideaalih - alih git add .ideamelakukan pekerjaan itu
Serge
Saya juga berubah adduntuk rmtetapi dalam kasus saya, saya harus menambahkan -rjuga untuk menghapus semua secara rekursif. git rm -r .idea
jmendiola
2
Wow Terimakasih!! Mencoba ini sejuta cara yang tidak berhasil. INI adalah pendekatan langkah demi langkah yang benar. Perbedaan utama yang saya lewatkan adalah memastikan IDE saya tertutup - jangan lewatkan langkah itu! Jawaban luar biasa :)
Jonny Asmar
Terima kasih! banyak, banyak waktu dihabiskan untuk mencari solusi yang berhasil dan mencoba beberapa. Ini adalah cara paling sederhana untuk melakukan itu.
edepe
83

Saya punya masalah ini sekarang, saya harus lakukan git rm -f .idea/workspace.xml sekarang tampaknya sudah hilang (saya juga harus memasukkannya ke dalam .gitignore)

arcanine
sumber
7
Saya juga akan menambahkan, hanya demi presisi, bahwa Ide Intellij harus ditutup ketika melakukan langkah-langkah ini.
LoreV
29

Saya harus:

  • hapus file dari git
  • dorong komit ke semua remote
  • pastikan semua komuter lain diperbarui dari jarak jauh

Perintah

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

Pengendara lain harus lari

git pull
Valentin Despa
sumber
7
Meskipun saya senang dengan jawaban ini, saya merasa bahwa akan lebih bermanfaat jika instruksi bagaimana menyelesaikan langkah-langkah (misalnya, arahan baris perintah) dimasukkan.
flyingace
Pilih tautan ini: stackoverflow.com/questions/8156299/… . Tampak persis seperti masalah Anda yang sama.
Luca Ballore
matikan IDE \ n git rm -f .idea / workspace.xml \ n git commit -m "menghapus workspace.xml" \ n edit .gitignore untuk mengecualikan workspace.xml \ n buka IDE
Srneczek
27

Di dir yang sama di mana Anda melihat file muncul lakukan:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(untuk mengedit), tambahkan .idea/workspace.xmlsalah satu baris Esc,,:wq

Kamu seharusnya baik sekarang

Melski
sumber
2
Atau, untuk menambahkan baris ke .gitignore, cukup ketik echo .idea/workspace.xml>>.gitignore. Anda tidak perlu membuka vi untuk semuanya. Atau, dan apa yang akan saya lakukan, adalah memiliki file .gitignore yang terpisah di direktori .idea:echo workspace.xml>>.idea/.gitignore
Godsmith
17

Untuk menghapus .idea/sepenuhnya dari git tanpa mempengaruhi konfigurasi IDE Anda, Anda bisa melakukannya:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"
Johnny Willer
sumber
6

Jika Anda memiliki banyak proyek di git repo Anda, .idea/workspace.xmltidak akan cocok dengan file apa pun.

Sebagai gantinya, lakukan hal berikut:

$ git rm -f **/.idea/workspace.xml

Dan buatlah .gitignore Anda terlihat seperti ini:

# User-specific stuff:
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/dictionaries
**/.idea/vcs.xml
**/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
**/.idea/dataSources.ids
**/.idea/dataSources.xml
**/.idea/dataSources.local.xml
**/.idea/sqlDataSources.xml
**/.idea/dynamic.xml
**/.idea/uiDesigner.xml

## File-based project format:
*.iws

# IntelliJ
/out/
kerner1000
sumber
5

Katakan saja git untuk tidak menganggap itu diubah, tidak peduli apa:

git update-index --assume-unchanged src/file/to/ignore

ya, Anda dapat menghapus file dari repositori git. Tetapi jika tim Anda semua menggunakan IDE yang sama atau Anda sendirian, Anda mungkin tidak ingin melakukan itu. Untuk diri Anda sendiri, Anda ingin memiliki titik awal yang baik untuk kembali bekerja, untuk rekan tim Anda juga.

Toskan
sumber
0

Cara saya lakukan di Android Studio yang juga berbasis pada IntelliJ adalah seperti ini. Dalam dialog komit, saya mengembalikan perubahan untuk workspace.xml, lalu dipindahkan ke file tidak berversi. Setelah itu saya menghapus ini dari dialog komit. Sekarang tidak akan muncul di daftar perubahan. Perhatikan bahwa gitignore saya sudah termasuk .idea / workspace.xml

PK Gupta
sumber
0

Karena dalam kasus saya, saya melakukan komit pertama dari sebuah proyek, cukup menghapus .gitdan .ideafolder dan kemudian menginisialisasi ulang git menggunakan git initmembantu untuk memecahkan masalah. Sekarang saya tidak punya .ideasama sekali.

Eduard
sumber
0

Masalah yang sama bagi saya dengan PHPStorm

Akhirnya saya memutuskan untuk melakukan hal berikut:

  • Hapus .idea / direktori
  • Memindahkan .gitignore ke level yang sama akan menjadi .idea baru yang dihasilkan
  • Tulis file yang perlu Anda abaikan, dan .idea / juga. Untuk memastikannya akan diabaikan saya letakkan yang berikut ini:

    • .ide/
    • .ide
    • .ide/*

Saya tidak tahu mengapa bekerja dengan cara ini, mungkin. Gitignore harus berada pada level yang sama dengan .idea untuk dapat mengabaikan direktori ini.

iDon'tKnoware
sumber
-1

Abaikan file yang diakhiri dengan .iws, workspace.xmldan tasks.xmlfile dalam Referensi .gitignore Anda

Josef
sumber