Intellij Idea 9/10, jakie foldery zaewidencjonować (lub nie wyewidencjonować) kontroli źródła?

120

Nasz zespół właśnie przeniósł się z Netbeans do Intellij 9 Ultimate i musi wiedzieć, które pliki / foldery powinny być zazwyczaj wykluczane z kontroli źródła, ponieważ nie są one przenośnymi stacjami roboczymi, tj .: odwołują się do ścieżek istniejących tylko na komputerze jednego użytkownika.

O ile wiem, Intellij chce zignorować większość projektu .idea, w tym

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml

Jednak wydaje się, że chce sprawdzić .imlpliki, które istnieją w katalogu głównym każdego modułu.

Początkowo sprawdziłem cały .ideakatalog za pomocą wiersza poleceń, który oczywiście nie jest świadomy tego, co „powinno” być ignorowane przez Idea. Czy cały .ideakatalog jest zwykle ignorowany?

benstpierre
źródło

Odpowiedzi:

105

Mamy artykuł FAQ dotyczący tego pytania.

Format [.idea] jest używany domyślnie we wszystkich ostatnich wersjach IDE. Oto, co musisz udostępnić:

  • Wszystkie pliki w .idea katalogu w katalogu głównym projektu wyjątkiem tych workspace.xml i tasks.xml plików, które ustawienia specyficzne sklep użytkowników
  • Wszystkie pliki modułów .iml , które mogą znajdować się w różnych katalogach modułów (dotyczy IntelliJ IDEA)

Zachowaj ostrożność, udostępniając następujące informacje:

  • Artefakty systemu Android, które tworzą podpisaną kompilację (będą zawierać hasła magazynu kluczy)
  • W IDEA 13 i wcześniejszych dataSources.ids , datasources.xml może zawierać hasła bazy danych. IDEA 14 rozwiązuje ten problem .

Możesz rozważyć, aby nie udostępniać następujących informacji:

  • Pliki .iml dla projektów opartych na Gradle lub Maven , ponieważ te pliki zostaną wygenerowane podczas importu
  • gradle.xml , zobacz tę dyskusję
  • folder ze słownikami użytkownika (aby uniknąć konfliktów, jeśli inny programista ma taką samą nazwę)
  • Pliki XML w .idea / libraries w przypadku, gdy są generowane z projektu Gradle lub Maven

.idea katalog jest zamiennikiem starego pliku .ipr (Projekt Idea) i jeśli chcesz udostępnić projekt między użytkownikami, musisz udostępnić folder .idea (z wyjątkami wymienionymi w FAQ) i wszystkie pliki .iml.

CrazyCoder
źródło
2
Tak, jest aktualny, nie było większych zmian w plikach projektu.
CrazyCoder
72
@CrazyCoder (+1) Ułatwiłoby nam życie, gdybyście umieścili pliki specyficzne dla projektu i pliki specyficzne dla użytkownika w oddzielnych katalogach.
IJ Kennedy,
3
Komentowanie starego wątku, ale podejście FAQ do udostępniania całego folderu .idea (z wyjątkiem workspace.xml i tasks.xml) jest problematyczne, ponieważ różne pliki zmieniają się między maszynami i między sesjami. Co mnie naprawdę wkurza: Python / Library na Macu jest w dwóch różnych miejscach na różnych Macach, więc pycharm.xml omija.
Matthew Cornell
29
to dość kiepska wymówka na FAQ. to duży wątek, w którym ludzie zadają pytania. co powiesz na przykład .gitignore dla projektu?
Jeffrey Blattman,
13
to niewiarygodne / niemożliwe, żeby w tym samym folderze znajdowało się „trochę tak, trochę nie” - czy to wciąż to samo szaleństwo cztery lata później? dzięki
Fattie
42

Zapoznaj się z plikiem JetBrains.gitignore na Github, aby zawsze mieć zaktualizowaną listę plików do zignorowania.

biały biały
źródło
A może Rider? (plik obecnie o tym nie wspomina)
Roberto
6

Nie jest to dokładna odpowiedź na pytanie, ale dostępne są tutaj przykładowe pliki .gitignore , w tym jeden dla JetBrains, który zawiera Intellij.

CodeClimber
źródło
1
Chciałbym móc negatywnie ocenić inne odpowiedzi, które nie zawierają pytań. Dziękuję za aktualną odpowiedź w kodzie źródłowym.
bobjones
1
.gitignoreLink JetBrains
Camilo Sanchez
5

Ten post może być interesujący: Scala pliki .IPR i .IWS IntelliJ IDEA

Wygląda na to, aby stwierdzić, że należy dodać wszystkie pliki z wyjątkiem: workspace.xml, dataSources.xml, sqlDataSources.xmli dynamic.xml. Odpowiedź polega na skupieniu się na plikach, które nie zmieniają się po prostu od otwarcia edytora lub wprowadzenia określonych zmian.

Tommy Andersen
źródło
4

Używam PHPStorm.

Oto przykładowy fragment kodu dla Twojego .gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml

Wszystkie inne pliki w .ideakatalogu powinny zostać zapisane w repozytorium.

np .: (zatwierdź wszystko inne w .ideakatalogu)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...

Dokumenty: Jak zarządzać projektami w systemach kontroli wersji

Oto, co musisz udostępnić:

Wszystkie pliki w .idea katalogu w katalogu głównym projektu wyjątkiem tych workspace.xml i tasks.xml plików, które ustawienia specyficzne sklep użytkowników

Wszystkie pliki modułów .iml, które mogą znajdować się w różnych katalogach modułów (dotyczy IntelliJ IDEA)

Więc w zasadzie popełniaj wszystko oprócz workspace.xmli tasks.xml.

Indygowiec
źródło
0

Tak mi się wydaje. Możesz sprawdzić konfigurację SVN, aby zobaczyć, co jest ignorowane i dodać wszystko, co Twoim zdaniem powinno zostać zignorowane.

duffymo
źródło