Android studio — .gitignore for Android Studio


Содержание

Что должно быть в моем.gitignore для проекта Android Studio?

andro > (24)

Какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, в которых все включают .iml но IntelliJ сообщает, что .iml должен быть включен в ваш источник управления.

У меня были проблемы с игнорированием файлов сборки, но это, похоже, работает :-)

В этой официальной документации от JetBrains Support говорится следующее:

Он также дает другие рекомендации о том, чтобы быть осторожным.

Лучше всего добавить список .gitignore через время разработки, чтобы предотвратить неизвестный побочный эффект, когда Version Control не будет работать по какой-либо причине из-за предопределенного (копирования / вставки) списка откуда-то. Для одного из моих проектов список игнорирования состоит только из:

Это лучший способ генерировать .gitignore here

Основываясь на моем обычном Android .gitignore , и после прочтения документации на сайте Intellij IDEA и чтения сообщений в , я создал следующий файл:

Также обратите внимание, что, как указано, раздел встроенных файлов в основном полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (* .o и * .so) из своего .gitignore.

Чтобы обойти импорт всех файлов, где Android Studio игнорирует список «Игнорируемые файлы», но все же использует Android Studio VCS, я сделал следующее: это будет использовать список «Игнорируемые файлы» из Android Studio (после импорта! Не во время) И избегайте использования громоздкого пути. Tortoise SVN устанавливает список svn: ignore.

  1. Используйте браузер репозитория Tortoise SVN для создания новой папки проекта непосредственно в репозитории.
  2. Используйте Tortoise SVN для проверки новой папки в верхней части папки, которую вы хотите импортировать. Вы получите предупреждение о том, что локальная папка не пуста. Игнорировать предупреждение. Теперь у вас версия с версией верхнего уровня с неверсированным контентом.
  3. Откройте проект из локального рабочего каталога. Теперь VCS можно включить автоматически
  4. Задайте свои файловые исключения в файле -> Настройки -> Контроль версий -> Игнорируемые файлы
  5. Добавить файлы в SVN из Android Studio: выберите «Приложение» в структуре проекта -> VCS -> Добавить в VCS (это добавит все файлы, кроме «Игнорируемые файлы»)
  6. Переменные изменения

Идти вперед, «Игнорируемые файлы» будут проигнорированы, и вы все равно сможете управлять VCS из Android Studio.

Я не согласен со всеми этими ответами. Следующая конфигурация отлично подходит для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии в ответе dalewking )
  • *.iml
  • local.properties

Я думаю, что почти все соглашаются /build .

Я устал от постоянного просмотра сообщений о различных файлах /.idea которые Gradle создает или удаляет в /.idea . build.gradle будет запущен на локальном уровне разработчиков, когда они сначала проведут проверку проекта, так почему же эти файлы XML должны быть версиями? Android Studio также сгенерирует остальную часть /.idea когда разработчик создаст проект, используя « Check out from Version Control , так почему же нужно что-нибудь в этой папке иметь версию?

Если *.iml , новый пользователь должен будет назвать проект точно так же, как и при его совершении. Так как это также сгенерированный файл, зачем его в первую очередь?

Файлы local.properties указывают на абсолютный путь к файловой системе для SDK, поэтому он определенно не должен быть версией.

Edit 1 : Добавлено .gradle чтобы игнорировать кеширование градиента, которое не должно быть версией (спасибо Василий Макаров ).

Edit 2 : Добавлено .DS_Store теперь, когда я использую Mac. Эта папка специфична для Mac и не должна быть версией.

Дополнительное примечание . Вероятно, вы также захотите добавить каталог для ввода ключей подписи при создании версии выпуска.

Для удобства копирования / вставки :

Протестировано с помощью Android Studio 3.0

Возможно, вам потребуется установить плагин .ignore .

Вы можете автоматически генерировать файл .gitignore для Android. Щелкните правой кнопкой мыши по папке и следуйте

Затем выберите «Android» на левой панели и нажмите « Создать».

Android Studio будет генерировать файл .gitignore, содержащий весь файл, который нужно игнорировать.

Я kosher с добавлением файлов .iml и Intellij sez, чтобы добавить папку .idea, но игнорировать файлы .idea / workspace.xml и .idea / tasks.xml, но как насчет .idea / libraries /?

Я не понимаю, как это имеет смысл добавить это. В нем есть список файлов XML, в которых перечислены библиотеки, о которых должен знать проект Android Studio. Предполагается, что они вместо этого будут созданы из build.gradle определенных зависимостей, а не файла проекта IDE.

Также содержимое одного из этих файлов выглядит следующим образом:

Не имеет смысла это совершать. Что, если пользователь указал другой домашний каталог для градиента, или если он использует другую версию градиента, путь под .gradle/caches/artifacts-xxx будет для них иным (например, artifacts- — число, добавленное в конце, будет относятся к выпуску версии градиента, который вы используете.) Эти пути не универсальны, и все же совет должен проверить все это?

Начиная с Android Studio 0.8.4 .gitignore файл генерируется автоматически при запуске нового проекта. По умолчанию он содержит:

Я согласен с этим утверждением, однако я изменяю этот файл для изменения / сборки для сборки / (Это будет включать / build и / app / build). Поэтому я не получаю все файлы в приложении / сборке в моем репозитории.

Также обратите внимание, что если вы импортируете проект из Eclipse, .gitignore не будет скопирован или «автоматически» создан для вас.

Чтобы получить лучшую идею, все, что вам нужно, это следующие файлы

Вы можете поместить все остальное в файл .gitignore. Все ваши изменения приложений в основном связаны с этими файлами и папками. Остальное, что вы видите в базовом проекте, — это файлы сборки градиента или файлы конфигурации Android Studio.

Если вы используете Android Studio, вы можете использовать «Импорт проекта» для успешной сборки проекта. В качестве альтернативы вы можете построить с помощью командной строки, следуя строкам проектов Android с помощью Gradle .

Я объединять файлы Github .gitignore

В принципе, любой файл, который автоматически восстанавливается.

Хорошим тестом является клонирование вашего репо и проверка того, сможет ли Android Studio интерпретировать и запускать ваш проект немедленно (генерируя то, что отсутствует).
Если нет, найдите то, чего не хватает, и убедитесь, что он не игнорируется, но добавлен в репо.

При этом вы можете взять пример из существующих файлов .gitignore , таких как Android .

Гитуб поддерживает полезные элементы гитиорных объектов для различных проектов. Вот список полезных элементов gitignore для проектов Android.

Я знаю, что это старая тема, и есть, конечно, много вариантов, но я действительно предпочитаю gibo от Саймона Уитакера. Он очень прост в использовании, кросс-платформенный (mac, * nix и windows), и использует github.com/github/gitignore repo, поэтому он (в основном) всегда обновляется.

Убедитесь, что ваш локальный кеш обновлен:

Найдите необходимый язык / технологию:

Отобразить файл .gitignore:

Теперь добавьте его в файл .gitignore вашего проекта:

(Убедитесь, что вы используете >> для добавления в файл .gitignore вашего проекта, один > перезапишет его — как я много раз делал в случае аварии!)

Я знаю, что это не отвечает на точный вопрос OP, но использование gibo делает так, что вам в значительной степени не нужно больше думать о «вопросе»! .. мило! ;)

Обновлено 7/2015:

Формат проекта на основе каталога (каталог .idea)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • Все файлы в .idea в корне проекта, за исключением файлов workspace.xml и tasks.xml которые сохраняют пользовательские настройки
  • Все .iml модулей .iml которые могут быть расположены в разных каталогах модулей (применимо к IntelliJ IDEA)

Будьте осторожны, разделив следующее:

  • Android-артефакты, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В IDEA 13 и более ранних dataSources.ids , dataSources.ids может содержать пароли базы данных. IDEA 14 решает эту проблему .

Вы можете не делиться следующим:

  • Файл gradle.xml, см. эту дискуссию
  • папка пользовательских словарей (во избежание конфликтов, если другой разработчик имеет то же имя)
  • XML-файлы в .idea/libraries в случае их создания из проекта Gradle

Формат устаревшего проекта ( .ipr / .iml / .iws )

  • Поделитесь .ipr проекта .ipr и всеми .iml модуля .iml , не .iws файл .iws поскольку он хранит пользовательские настройки

Хотя эти инструкции предназначены для IntelliJ IDEA, они поддерживают 100% для Android Studio.

Вот фрагмент .gitignore который включает все вышеперечисленные правила:

Обновлено до Android Studio 3.0. Пожалуйста, поделитесь отсутствующими элементами в комментариях.

Поздний ответ, но ни один из ответов здесь и here был прав на деньги для нас .

Итак, вот наш файл gitignore:

Начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

Устаревший — для более старого формата проекта добавьте этот раздел в свой файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не внутри папки модуля проекта.

Редактировать заметки:

Начиная с версии 0.3+ кажется, что вы можете зафиксировать и нажать файлы * .iml и build.gradle . Если ваш проект основан на Gradle: в новом диалоговом окне открытия / импорта вы должны установить флажок «use auto import» и пометить флажок «use default gradle wrapper (recommended)» . Все пути теперь относительны, как предложил @George.


Обновленный ответ в соответствии с @ 128KB прилагается источник и @Skela предложения

Я использую этот .gitignore. Я нашел его по адресу: http://th4t.net/android-studio-gitignore.html

Нет НИКАКОГО НИКАКАЯ НЕОБХОДИМО добавить в исходный элемент управления любое из следующего:

Таким образом, вы можете настроить hgignore или gitignore соответственно.

В первый раз, когда разработчик клонирует исходный элемент управления, может пойти:

  1. Открыть Android Studio
  2. Импорт проекта
  3. Просмотрите build.gradle в клонированном репозитории и откройте его.

PS: Android Studio затем, через maven, получит плагин gradle, предполагая, что ваш build.gradle выглядит примерно так:

Студия Android создаст содержимое папки .idea (включая файл workspace.xml, который не должен находиться в исходном управлении, потому что он создан ) и папку .gradle.

Этот подход является дружественным Eclipse в том смысле, что элемент управления источником ничего не знает об Android Studio. Android Studio просто требует build.gradle для импорта проекта и создания остальных.

Я поддерживаю фиксацию папки .idea (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу, что файлы .iml следует игнорировать.

Откройте проект в каталоге с именем «foo», и вы получите foo.iml, и все будет хорошо и хорошо. Проблема в том, что если я просто переименую каталог в foo2 (или клонирую его в другое имя каталога), когда вы попытаетесь открыть проект в Android Studio, вы получите три вещи:

  • Новый файл iml с именем foo2.iml
  • Файл iml для вашего проекта Android будет изменен, чтобы теперь указать foo2 в качестве родительского объекта
  • .idea / modules.xml будет добавлена ​​строка для foo2.iml, поэтому у нее есть как старый iml-файл, так и новый для нового каталога

Я не могу найти способа предотвратить создание Android-Studio для создания этого файла iml, когда проект хранится в другом каталоге. Добавление их в исходный контроль вызовет проблемы. Поэтому я думаю, что, возможно, нам следует игнорировать * .iml-файлы и .idea/modules.xml

Мой совет должен также не игнорировать папку .idea.

Я импортировал проект Eclipse на основе Git в Android Studio, и все прошло отлично. Позже я хотел импортировать этот проект с Git (как в первый раз) на другую машину с Android Studio, но это не сработало. Android Studio загрузила все файлы, но не смогла «увидеть» проект как проект. Я только мог открыть Git-файлы.

При импорте проекта в первый раз (от Eclipse до Android Studio) мой старый .gitignore был перезаписан, а новый выглядел так:

working Что должно быть в моем.gitignore для проекта Android Studio?

gradle gitignore (24)

Какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, в которых все включают .iml но IntelliJ сообщает, что .iml должен быть включен в ваш источник управления.

Это лучший способ генерировать .gitignore here

Нет НИКАКОГО НИКАКАЯ НЕОБХОДИМО добавить в исходный элемент управления любое из следующего:

Таким образом, вы можете настроить hgignore или gitignore соответственно.

В первый раз, когда разработчик клонирует исходный элемент управления, может пойти:

  1. Открыть Android Studio
  2. Импорт проекта
  3. Просмотрите build.gradle в клонированном репозитории и откройте его.

PS: Android Studio затем, через maven, получит плагин gradle, предполагая, что ваш build.gradle выглядит примерно так:

Студия Android создаст содержимое папки .idea (включая файл workspace.xml, который не должен находиться в исходном управлении, потому что он создан ) и папку .gradle.

Этот подход является дружественным Eclipse в том смысле, что элемент управления источником ничего не знает об Android Studio. Android Studio просто требует build.gradle для импорта проекта и создания остальных.

Лучше всего добавить список .gitignore через время разработки, чтобы предотвратить неизвестный побочный эффект, когда Version Control не будет работать по какой-либо причине из-за предопределенного (копирования / вставки) списка откуда-то. Для одного из моих проектов список игнорирования состоит только из:

Я объединять файлы Github .gitignore

Я не согласен со всеми этими ответами. Следующая конфигурация отлично подходит для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии в ответе dalewking )
  • *.iml
  • local.properties

Я думаю, что почти все соглашаются /build .

Я устал от постоянного просмотра сообщений о различных файлах /.idea которые Gradle создает или удаляет в /.idea . build.gradle будет запущен на локальном уровне разработчиков, когда они сначала проведут проверку проекта, так почему же эти файлы XML должны быть версиями? Android Studio также сгенерирует остальную часть /.idea когда разработчик создаст проект, используя « Check out from Version Control , так почему же нужно что-нибудь в этой папке иметь версию?

Если *.iml , новый пользователь должен будет назвать проект точно так же, как и при его совершении. Так как это также сгенерированный файл, зачем его в первую очередь?

Файлы local.properties указывают на абсолютный путь к файловой системе для SDK, поэтому он определенно не должен быть версией.

Edit 1 : Добавлено .gradle чтобы игнорировать кеширование градиента, которое не должно быть версией (спасибо Василий Макаров ).

Edit 2 : Добавлено .DS_Store теперь, когда я использую Mac. Эта папка специфична для Mac и не должна быть версией.

Дополнительное примечание . Вероятно, вы также захотите добавить каталог для ввода ключей подписи при создании версии выпуска.

Для удобства копирования / вставки :

Обновлено до Android Studio 3.0. Пожалуйста, поделитесь отсутствующими элементами в комментариях.

Поздний ответ, но ни один из ответов здесь и here был прав на деньги для нас .

Итак, вот наш файл gitignore:

Начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

Устаревший — для более старого формата проекта добавьте этот раздел в свой файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не внутри папки модуля проекта.

Редактировать заметки:

Начиная с версии 0.3+ кажется, что вы можете зафиксировать и нажать файлы * .iml и build.gradle . Если ваш проект основан на Gradle: в новом диалоговом окне открытия / импорта вы должны установить флажок «use auto import» и пометить флажок «use default gradle wrapper (recommended)» . Все пути теперь относительны, как предложил @George.

Обновленный ответ в соответствии с @ 128KB прилагается источник и @Skela предложения

В этой официальной документации от JetBrains Support говорится следующее:

Он также дает другие рекомендации о том, чтобы быть осторожным.

Основываясь на моем обычном Android .gitignore , и после прочтения документации на сайте Intellij IDEA и чтения сообщений в , я создал следующий файл:

Также обратите внимание, что, как указано, раздел встроенных файлов в основном полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (* .o и * .so) из своего .gitignore.

Я поддерживаю фиксацию папки .idea (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу, что файлы .iml следует игнорировать.

Откройте проект в каталоге с именем «foo», и вы получите foo.iml, и все будет хорошо и хорошо. Проблема в том, что если я просто переименую каталог в foo2 (или клонирую его в другое имя каталога), когда вы попытаетесь открыть проект в Android Studio, вы получите три вещи:

  • Новый файл iml с именем foo2.iml
  • Файл iml для вашего проекта Android будет изменен, чтобы теперь указать foo2 в качестве родительского объекта
  • .idea / modules.xml будет добавлена ​​строка для foo2.iml, поэтому у нее есть как старый iml-файл, так и новый для нового каталога

Я не могу найти способа предотвратить создание Android-Studio для создания этого файла iml, когда проект хранится в другом каталоге. Добавление их в исходный контроль вызовет проблемы. Поэтому я думаю, что, возможно, нам следует игнорировать * .iml-файлы и .idea/modules.xml

У меня были проблемы с игнорированием файлов сборки, но это, похоже, работает :-)

Я kosher с добавлением файлов .iml и Intellij sez, чтобы добавить папку .idea, но игнорировать файлы .idea / workspace.xml и .idea / tasks.xml, но как насчет .idea / libraries /?

Я не понимаю, как это имеет смысл добавить это. В нем есть список файлов XML, в которых перечислены библиотеки, о которых должен знать проект Android Studio. Предполагается, что они вместо этого будут созданы из build.gradle определенных зависимостей, а не файла проекта IDE.

Также содержимое одного из этих файлов выглядит следующим образом:

Не имеет смысла это совершать. Что, если пользователь указал другой домашний каталог для градиента, или если он использует другую версию градиента, путь под .gradle/caches/artifacts-xxx будет для них иным (например, artifacts- — число, добавленное в конце, будет относятся к выпуску версии градиента, который вы используете.) Эти пути не универсальны, и все же совет должен проверить все это?

Протестировано с помощью Android Studio 3.0

Возможно, вам потребуется установить плагин .ignore .

Вы можете автоматически генерировать файл .gitignore для Android. Щелкните правой кнопкой мыши по папке и следуйте

Затем выберите «Android» на левой панели и нажмите « Создать».

Android Studio будет генерировать файл .gitignore, содержащий весь файл, который нужно игнорировать.

Для проектов Android Studio 3.0 используйте следующее:

.gitignore

Папка проекта Gradle

Единственное, что должно быть в вашей папке проекта (Gradle) после клонирования репозитория, это эта структура (по крайней мере, для случаев использования, с которыми я столкнулся до сих пор):

Начиная с Android Studio 0.8.4 .gitignore файл генерируется автоматически при запуске нового проекта. По умолчанию он содержит:


Я согласен с этим утверждением, однако я изменяю этот файл для изменения / сборки для сборки / (Это будет включать / build и / app / build). Поэтому я не получаю все файлы в приложении / сборке в моем репозитории.

Также обратите внимание, что если вы импортируете проект из Eclipse, .gitignore не будет скопирован или «автоматически» создан для вас.

Зависит от того, как поддерживается ваш формат проекта:

У вас есть два варианта:

  1. Формат на основе каталога (у вас будет папка .idea содержащая файлы, специфичные для проекта)
  2. Файловый формат (файлы конфигурации — .iws и .ipr )

Файлы, предназначенные для контроля версий, зависят от вышеперечисленного:

  1. Включить папку .idea в управление версиями, исключить workspace.xml и tasks.xml
  2. Файл управления .ipr и все .iml модуля .iml исключают файл .iws поскольку он хранит пользовательские настройки.

Я знаю, что это старая тема, и есть, конечно, много вариантов, но я действительно предпочитаю gibo от Саймона Уитакера. Он очень прост в использовании, кросс-платформенный (mac, * nix и windows), и использует github.com/github/gitignore repo, поэтому он (в основном) всегда обновляется.

Убедитесь, что ваш локальный кеш обновлен:

Найдите необходимый язык / технологию:

Отобразить файл .gitignore:

Теперь добавьте его в файл .gitignore вашего проекта:

(Убедитесь, что вы используете >> для добавления в файл .gitignore вашего проекта, один > перезапишет его — как я много раз делал в случае аварии!)

Я знаю, что это не отвечает на точный вопрос OP, но использование gibo делает так, что вам в значительной степени не нужно больше думать о «вопросе»! .. мило! ;)

Я использую этот .gitignore. Я нашел его по адресу: http://th4t.net/android-studio-gitignore.html

В случае Android Studio единственными файлами, которые необходимо сохранить в управлении версиями, являются файлы, необходимые для создания приложения из командной строки с использованием gradle. Поэтому вы можете игнорировать:

Однако, если вы сохраните настройки IDE, такие как настройки стиля пользовательского кода, они будут сохранены в папке .idea. Если вам нужны эти изменения в управлении версиями, вы также сохраните файлы IDEA (* .iml и .idea).

Чтобы обойти импорт всех файлов, где Android Studio игнорирует список «Игнорируемые файлы», но все же использует Android Studio VCS, я сделал следующее: это будет использовать список «Игнорируемые файлы» из Android Studio (после импорта! Не во время) И избегайте использования громоздкого пути. Tortoise SVN устанавливает список svn: ignore.

  1. Используйте браузер репозитория Tortoise SVN для создания новой папки проекта непосредственно в репозитории.
  2. Используйте Tortoise SVN для проверки новой папки в верхней части папки, которую вы хотите импортировать. Вы получите предупреждение о том, что локальная папка не пуста. Игнорировать предупреждение. Теперь у вас версия с версией верхнего уровня с неверсированным контентом.
  3. Откройте проект из локального рабочего каталога. Теперь VCS можно включить автоматически
  4. Задайте свои файловые исключения в файле -> Настройки -> Контроль версий -> Игнорируемые файлы
  5. Добавить файлы в SVN из Android Studio: выберите «Приложение» в структуре проекта -> VCS -> Добавить в VCS (это добавит все файлы, кроме «Игнорируемые файлы»)
  6. Переменные изменения

Идти вперед, «Игнорируемые файлы» будут проигнорированы, и вы все равно сможете управлять VCS из Android Studio.

Начиная с Android Studio .gitignore файл генерируется автоматически при запуске нового проекта. По умолчанию он содержит:

Цукерберг рекомендует:  Jquery - Литература по JavaScript, jQuery

Обновлено 7/2015:

Формат проекта на основе каталога (каталог .idea)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • Все файлы в .idea в корне проекта, за исключением файлов workspace.xml и tasks.xml которые сохраняют пользовательские настройки
  • Все .iml модулей .iml которые могут быть расположены в разных каталогах модулей (применимо к IntelliJ IDEA)

Будьте осторожны, разделив следующее:

  • Android-артефакты, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В IDEA 13 и более ранних dataSources.ids , dataSources.ids может содержать пароли базы данных. IDEA 14 решает эту проблему .

Вы можете не делиться следующим:

  • Файл gradle.xml, см. эту дискуссию
  • папка пользовательских словарей (во избежание конфликтов, если другой разработчик имеет то же имя)
  • XML-файлы в .idea/libraries в случае их создания из проекта Gradle

Формат устаревшего проекта ( .ipr / .iml / .iws )

  • Поделитесь .ipr проекта .ipr и всеми .iml модуля .iml , не .iws файл .iws поскольку он хранит пользовательские настройки

Хотя эти инструкции предназначены для IntelliJ IDEA, они поддерживают 100% для Android Studio.

Вот фрагмент .gitignore который включает все вышеперечисленные правила:

Что должно быть в моем.gitignore для проекта Andro >

какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, которые все относятся .iml но IntelliJ docs говорят, что .iml должен быть включен в систему управления версиями.

29 ответов

обновлено до Android Studio 3.0 Пожалуйста, поделитесь недостающими элементами в комментариях.

поздний ответ, но ни один из ответов здесь и здесь был прав на деньги для нас.

Итак, вот наш файл gitignore:

начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

устаревший — для более старого формата проекта добавьте этот раздел в свой gitignore файл:

этот файл должен находиться в корневой папке проекта, а не в папке модуля проекта.

Редактировать Примечания:

начиная с версии 0.3+ кажется, вы можете commit и push *.iml и построить.Gradle в файлы. Если ваш проект на Gradle в: в новом диалоговом окне открытия/импорта, вы должны проверить «use auto import» установите флажок и отметьте радио. Все пути теперь относительны как предложил @George.

обновил ответ по @128КБ добавленные источник и @Skela предложения

строительство на моем обычном Android .gitignore, и после прочтения документации на веб-сайте Intellij IDEA и чтения сообщений на StackOverflow я построил следующий файл:

также обратите внимание, что, как указано,причине файлы раздел в первую очередь полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (*.о и *.Итак) от вашего .гитюдного.

Обновлено 7/2015:

формат проекта на основе каталога (.каталог идей)

этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • все файлы под .idea каталог в корне проекта за исключением на workspace.xml и tasks.xml файлы определенного пользователя настройки
  • все .iml файлы модулей, которые могут быть расположены в разных каталогах модулей (относится к IntelliJ IDEA)

будьте осторожны поделиться следующим:

  • артефакты Android, которые производят подписанную сборку (будут содержать пароли хранилища ключей)
  • в идее 13 и ранее dataSources.ids , datasources.xml может содержать пароли базы данных. Идея 14 решает эту проблема.

вы можете рассмотреть возможность не делиться следующим:

  • gradle.xml-файл, см. эта дискуссия
  • папка пользовательских словарей (чтобы избежать конфликтов, если другой разработчик имеет то же имя)
  • XML-файлы в разделе .idea/libraries в случае, если они генерируется из Gradle проект

устаревший формат проекта ( .ipr / .iml / .iws файлы)

  • долю в проекте и .iml файлы модуля, не разделяю на .iws файл, как он хранит пользовательские настройки

хотя эти инструкции предназначены для IntelliJ IDEA, они верны на 100% для Android Studio.

здесь .gitignore фрагмент, который включает в себя все вышеперечисленные правила:

я не согласен с этими ответами. Следующая конфигурация отлично работает для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии ответ dalewking)
  • *.iml
  • local.properties

Я думаю, что почти все согласны с /build .

мне надоело постоянно видеть сообщения о различные library.xml файлы, которые Gradle создает или удаляет в /.idea . The build.gradle будет работать на локальном разработчиков, когда они впервые проверить проект, так почему эти XML-файлы должны быть версионными? Android Studio также будет генерировать остальную часть /.idea когда разработчик создает проект, используя Check out from Version Control , так почему же что-то в этой папке должно быть версионным?


если *.iml is versioned новый пользователь должен будет назвать проект точно так же, как это было, когда привержен. Поскольку это также сгенерированный файл, почему версия его в первую очередь?

на local.properties files указывает на абсолютный путь в файловой системе для SDK, поэтому он определенно не должен быть версионным.

изменить 1 добавлено .gradle игнорировать материал кэширования gradle, который не должен быть версионным (спасибо Василий Макаров).

Изменить 2 добавлено .DS_Store теперь, когда я использую Mac. Эта папка-Mac конкретные и должны не быть версионными.

дополнительная информация: вы, вероятно, также хотите добавить каталог для ввода ключей подписи при создании версии выпуска.

для удобства копирования/вставки:

Что должно быть в моем проекте .gitignore для Android Studio?

Какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, в которых все включают .iml но IntelliJ сообщает, что .iml должен быть включен в ваш источник управления.

git android-studio gitignore

30 ответов

1200 Решение Lior Iluz [2013-07-23 10:29:00]

Обновлено до Android Studio 3.0 Пожалуйста, поделитесь отсутствующими элементами в комментариях.

Поздний ответ, но ни один из ответов здесь и здесь не был прав на деньги для нас.

Итак, вот наш файл gitignore:

Начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

Устаревший — для более старого формата проекта добавьте этот раздел в свой файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не внутри папки модуля проекта.

Изменить примечания:

Начиная с версии 0.3+, вы можете зафиксировать и нажать *. iml и build.gradle. Если ваш проект основан на Gradle: в новом диалоговом окне открытия/импорта вы должны установить флажок «use auto import» и пометить переключатель «use default gradle wrapper (recommended)» . Все пути теперь относительны, как предположил @George.

Обновлен ответ в соответствии с @128KB прикрепленный источник и предложения @Skela

141 Phil [2014-01-10 19:23:00]

Основываясь на моем обычном Android .gitignore, и после прочтения документации на сайте Intellij IDEA и чтения сообщений в StackOverflow, я создал следующий файл:

Также обратите внимание, что, как указано, встроенный раздел родных файлов в первую очередь полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (*.o и *.so) из своего .gitignore.

75 Sky Kelsey [2013-08-27 01:45:00]

Обновлено 7/2015:

Формат проекта на основе каталога (каталог .idea)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • Все файлы в каталоге .idea в корневом каталоге проекта кроме файлов workspace.xml и tasks.xml , которые сохраняют пользовательские настройки
  • Все файлы модулей .iml , которые могут быть расположены в разных каталогах модулей (применимо к IntelliJ IDEA)

Будьте внимательны о том, чтобы поделиться следующим:

  • Артефакты Android, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В IDEA 13 и более ранних dataSources.ids , datasources.xml могут содержаться пароли базы данных. IDEA 14 решает эту проблему.

Вы можете не делиться следующим:

  • gradle.xml файл, см. эту дискуссию
  • папка пользовательских словарей (чтобы избежать конфликтов, если другой разработчик имеет то же имя)
  • XML файлы под .idea/libraries в случае, если они созданы из Gradle проекта

Устаревший формат проекта ( .ipr / .iml / .iws )

  • Поделитесь файлом проекта .ipr и всеми файлами модуля .iml , не разделяйте файл .iws при сохранении пользовательских настроек

Несмотря на то, что эти инструкции предназначены для IntelliJ IDEA, они действительно поддерживают 100% для Android Studio.

Вот фрагмент .gitignore , который включает все вышеперечисленные правила:

35 theblang [2014-07-10 17:57:00]

Я не согласен со всеми этими ответами. Следующая конфигурация отлично подходит для нашего организационного приложения.

  • /build
  • /.idea (с возможными исключениями, см. комментарии в ответ dalewking)
  • *.iml
  • local.properties

Я думаю, что почти все согласны насчет /build .

Я устал от постоянного просмотра сообщений о различных файлах library.xml , которые Gradle создает или удаляет в /.idea . build.gradle будет запущен на локальных разработчиков, когда они сначала проведут проверку проекта, так почему же эти файлы XML должны быть версиями? Android Studio также сгенерирует оставшуюся часть /.idea , когда разработчик создает проект с помощью Check out from Version Control , поэтому зачем что-либо в этой папке нужно версировать?

Если версия *.iml установлена ​​в версии, новый пользователь должен будет назвать проект точно таким же, как и при его совершении. Так как это также сгенерированный файл, зачем его версии в первую очередь?

Файлы local.properties указывают на абсолютный путь к файловой системе для SDK, поэтому он определенно не должен быть версией.

Изменить 1: добавлено .gradle , чтобы игнорировать кеширующий материал Gradle, который не должен быть версией (спасибо Василий Макаров).

Изменить 2: добавлено .DS_Store теперь, когда я использую Mac. Эта папка специфична для Mac и должна быть не версией.

Дополнительная заметка. Вероятно, вы также захотите добавить каталог для ввода ключей подписи при создании версии выпуска.

Для удобства копирования/вставки:

What should be in my .gitignore for an Android Studio project?

November 2020

390.9k time

What files should be in my .gitignore for an Android Studio project?

I’ve seen several examples that all include .iml but IntelliJ docs say that .iml must be included in your source control.

62 answers

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

В случае Android Studio, только файлы, которые необходимы для сохранения в системе управления версиями являются файлами, необходимыми для создания приложения из командной строки с помощью Gradle. Таким образом, вы можете игнорировать:

Тем не менее, если вы сохраните все настройки IDE, такие как настройки стилей пользовательского кода, они спасаются в папке .idea. Если вы хотите, чтобы эти изменения в системе управления версиями, то вы бы сохранить файлы проекта IDEA, а также (* .iml и .idea).

Для Android Studio 3.0 проектов используют следующие:

.gitignore

Папка проекта Gradle

Единственное, что должно быть в вашем (Gradle) папке проекта после клонирования репозитория эта структура (по крайней мере, за исключением случаев использования я столкнулся до сих пор):

Обновление для Android Studio 3.0 Пожалуйста , поделитесь недостающими элементами в комментариях.

Поздний ответ , но ни один из ответов здесь и здесь был прав на деньги для нас .

Итак, вот наш файл gitignore:

Поскольку Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого gitignore файла:

Устаревшее — для старого формата проекта, добавить этот раздел в файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не в папке модуля проекта.

Редактирование Примечание:


Начиная с версии 0.3+, кажется , вы можете совершить и нажать * .iml и build.gradle файлы. Если ваш проект основан на Gradle: в новом диалоге открытия / импорта, вы должны проверить «use auto import» флажок и отметьте «use default gradle wrapper (recommended)» переключатель. Все пути в настоящее время по отношению как предложено @George.

Обновленный ответ в соответствии с @ 128KB прилагается источник и предложения @Skela

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Там нет никакой необходимости, чтобы добавить в систему управления версиями любого из следующих действий:

Таким образом, вы можете настроить hgignore или gitignore соответственно.

Первый раз разработчик клонирует управление источником может идти:

  1. Open Android-студия
  2. Импорт проекта
  3. Обзор для build.gradle в клонированных хранилище и открыть его

PS: Android студия будет через Maven, получить Gradle плагина при условии, что ваш build.gradle выглядит примерно так:

Android студия будет генерировать содержимое .idea папки ( в том числе workspace.xml, которые не должны быть в системе управления версиями , поскольку она порождена ) и .gradle папку.

Такой подход является Eclipse, дружественным таким образом, что элемент управление источником не знает ничего о Android Studio. Android-студия просто нуждается в build.gradle импортировать проект и произвести все остальное.

Обновлено 7/2015:

Формат каталога на основе проекта (.idea каталог)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот то, что вам нужно поделиться:

  • Все файлы в .idea директории в корне проекта , за исключением тех , workspace.xml и tasks.xml файлы , которые конкретные параметры хранения пользовательских
  • Все .iml модули файлы , которые могут быть расположены в разных каталогах модулей (относится к IntelliJ IDEA)

Будьте осторожны о совместном использовании следующих действий :

  • Android артефакты, которые производят подписанную сборку (будет содержать хранилище ключей паролей)
  • В IDEA 13 и более ранние версии dataSources.ids , datasources.xml могут содержать пароли баз данных. IDEA 14 решает эту проблему .

Вы можете рассмотреть, чтобы не разделить следующим образом:

  • gradle.xml файл, см это обсуждение
  • Папка пользовательских словарей (чтобы избежать конфликтов, если другой разработчик имеет то же имя)
  • XML файлы в .idea/libraries в случае , если они генерируются из Gradle проекта

Наследство формат проекта ( .ipr / .iml / .iws файлы)

  • Доля проект .ipr файла и все .iml модульные файлы, не разделяют в .iws файл, который хранит настройки пользователей

В то время как эти инструкции для IntelliJ IDEA, они верны на 100% для Android Studio.

Вот .gitignore фрагмент кода , который включает в себя все вышеперечисленные правила:

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога
Цукерберг рекомендует:  Pyqt5 - Как изменить часть окна PyQt5


Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

В принципе любой файл, который автоматически регенерируется.

Хороший тест , чтобы клонировать репозиторий и посмотреть , если Android — студия способна интерпретировать и запустить свой проект сразу (генерации , чего не хватает).
Если нет, то найти то , что не хватает, и убедитесь , что он не игнорируется, но добавил к репо.

При этом, вы можете взять пример на существующие .gitignore файлы, такие как Android один .

Я не согласен со всеми этими ответами. Следующая конфигурация работает отлично подходит для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см комментарии в ответ dalewking в )
  • *.iml
  • local.properties

Я думаю , что почти все согласны с тем о /build .

Я заболел постоянно появляются сообщения о различных library.xml файлах , которые Gradle создает или удаляет в /.idea . build.gradle Будет работать на разработчик Местного , когда они сначала проверить проект, так почему эти XML файлы должны быть версированным? Android — студия также будет генерировать остальные , /.idea когда разработчик создает проект с использованием Check out from Version Control , так почему нужно быть версированным что — нибудь в этой папке?

Если *.iml версирован новый пользователь должен будет назвать проект точно так же , как это было , когда они совершаются. Поскольку это также сгенерированный файл, почему версии это в первую очередь?

Эти local.properties файлы указывает на абсолютный путь в файловой системе для SDK, так что это, безусловно , не должно быть версированными.

Edit 1 : Добавлено .gradle игнорировать Gradle материала кэширования , который не должен быть версионным (спасибо Василий Макаров ).

Изменить 2 : Добавлено .DS_Store теперь я использую Mac. Эта папка Mac специфична и должна не быть версированная.

Дополнительное примечание : Возможно , вы также хотите , чтобы добавить каталог положить ключи подписи в при создании версии.

Для удобства копирования / вставки :

Чтобы обойти импорт всех файлов, где Android Студия игнорирует список «Игнорируется Files», но по-прежнему использовать Android Studio VCS, я сделал следующее: (! После импорта не во время) Это будет использовать «игнорируемые файлы» список из Android Studio И избежать необходимости использовать громоздкий способ Tortoise SVN устанавливает SVN: игнорировать список.

  1. Используйте обозреватель хранилища Tortoise SVN, чтобы создать новую папку проекта непосредственно в хранилище.
  2. Использование Tortoise SVN для извлекают новую папку поверх папки, которую вы хотите импортировать. Вы получите предупреждение о том, что локальная папка не пуста. Не обращайте внимания на предупреждение. Теперь у вас есть версированная папка верхнего уровня с неверсированным содержимым.
  3. Откройте свой проект из локального рабочего каталога. VCS должен теперь быть включен автоматически
  4. Установите исключения файлов в File -> Settings -> Version Control -> Игнорируется Files
  5. Добавление файлов в SVN из Android Studio: выберите «App» в Project Structure -> VCS -> Добавить в VCS (это добавит все файлы, кроме «игнорируемых файлов»)
  6. Commit Changes

Забегая вперед, «Игнорируется Files» будут игнорироваться, и вы все еще можете управлять VCS из Android Studio.

Лучше всего составить список .gitignore через время разработки, чтобы предотвратить неизвестный побочный эффект, когда управление версиями не будет работать по какой-то причине из-за предопределенный (копировать / вставить) список из куда-нибудь. Для одного из моих проектов, список игнорировать только из:

Я знаю , что это старая тема , и есть, конечно , много вариантов, но я действительно предпочитаю gibo Саймон Уитакер. Это супер проста в использовании, кросс-платформенный (Mac, * NIX, и окна), и использует GitHub gitignore репо , так что ( в основном) всегда в актуальном состоянии .

Убедитесь, что ваш локальный кэш до даты:

Поиск языка / технологии вам нужно:

Отображение файла .gitignore:

Теперь добавьте его в .gitignore файл вашего проекта:

(Убедитесь , что вы используете , >> чтобы добавить в файл .gitignore вашего проекта, один > ! Перепишут его , — как я делал много раз на аварии)

Я знаю, что это не отвечает на точный вопрос в OP, но с использованием Gibo делает это так вы в значительной степени не должны думать о «вопрос» больше! .. мило! ;)

На Android Studio генерируется 0.8.4 .gitignore файл автоматически при запуске нового проекта. По умолчанию он содержит:

Я согласен с этим утверждением, однако я могу изменить этот файл, чтобы изменить / сборки для создания / (Это будет включать / строительство и / приложение / сборку) Так что я не до конца со всеми файлами в приложении / построить в моем хранилище.

Следует также отметить, что если импортировать проект из ЗАТМЕНИЕМ, .gitignore не будут скопированы или «автомагически» создан для вас.

Я поддерживаю совершение .idea папки (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу , что .iml файлы должны быть проигнорированы.

Открытие проекта в папку с именем «Foo», например, и вы получите foo.iml и что все, кажется, хорошо. Проблема заключается в том, что если я просто переименовать каталог на foo2 (или клонировать его в другое имя каталога) при попытке открыть проект в Android Studio, вы получите три вещи:

  • Новые однопетлевой файл с именем foo2.iml
  • Однопетлевой файл для Android проекта будет перенаправлен теперь Foo2 в качестве родителя
  • .idea / modules.xml будет иметь линию добавил для foo2.iml поэтому она имеет как старый IML файл и один для нового каталога

Я не могу найти способ предотвратить Android Studio делать это IML создание файлов, когда проект находится в другой директории. Добавление их в систему управления версиями будет вызывать проблемы. Поэтому я думаю, что, возможно, мы должны игнорировать * .iml файлы и .idea/modules.xml

Испытано с Android Studio 3.0

Вам может понадобиться установить .IGNORE плагин.

Вы можете автоматически создавать файл .gitignore для Android. Щелкните правой кнопкой мыши на папке и следуйте

Затем выберите Android от левой панели и нажмите кнопку Generate

Android-студия создаст .gitignore файл, который содержит все файл нужно игнорировать.

Что должно быть в моем.gitignore для проекта Andro >

Какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, которые все включают .iml но документы IntelliJ говорят, что .iml должен быть включен в ваш источник контроля.

29 ответов

Обновлено до Android Studio 3.0 Пожалуйста, поделитесь недостающими элементами в комментариях.

Поздний ответ, но ни один из ответов здесь и здесь не был прав на деньги для нас.

Итак, вот наш файл gitignore:

Начиная с Android Studio 2.2 и до 3.0 новые проекты создаются с помощью этого файла gitignore:

Устаревший — для более старого формата проекта добавьте этот раздел в файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не в папке модуля проекта.

Редактировать заметки:

Начиная с версии 0.3+ кажется, что вы можете фиксировать и отправлять файлы *.iml и build.gradle. Если ваш проект основан на Gradle: в новом диалоге открытия / импорта вы должны проверить «use auto import» флажок и отметьте «use default gradle wrapper (recommended)» переключатель. Все пути теперь относительны, как предложил @George.

Обновленный ответ в соответствии с приложенным источником @128KB и предложениями @Skela

Основываясь на моем обычном Android .gitignore, и после прочтения документации на веб-сайте Intellij IDEA и чтения постов в Stackru, я создал следующий файл:

Также обратите внимание, что, как указывалось, раздел встроенных собственных файлов в первую очередь полезен, когда вы создаете свой собственный встроенный код с помощью Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (*.o и *.so) из вашего.gitignore.

Обновлено 7/2015:

Каталог на основе формата проекта (каталог.idea)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • Все файлы в .idea каталог в корне проекта, кроме workspace.xml а также tasks.xml файлы, в которых хранятся пользовательские настройки
  • Все .iml файлы модулей, которые могут находиться в разных каталогах модулей (относится к IntelliJ IDEA)

Будьте осторожны, сообщая следующее:

  • Android-артефакты, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В ИДЕЯ 13 и ранее dataSources.ids , datasources.xml может содержать пароли базы данных. ИДЕЯ 14 решает эту проблему.

Вы можете подумать не делиться следующим:


  • файл gradle.xml, смотрите это обсуждение
  • папка пользовательских словарей (чтобы избежать конфликтов, если другой разработчик имеет такое же имя)
  • XML-файлы в .idea/libraries в случае, если они генерируются из проекта Gradle

Устаревший формат проекта ( .ipr / .iml / .iws файлы)

  • Поделись проектом .ipr файл и все .iml файлы модуля, не делитесь .iws файл, поскольку он хранит пользовательские настройки

Хотя эти инструкции предназначены для IntelliJ IDEA, они верны на 100% для Android Studio.

Вот .gitignore фрагмент, который включает в себя все вышеперечисленные правила:

Я не согласен со всеми этими ответами. Следующая конфигурация отлично работает для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии в ответе dalewking)
  • *.iml
  • local.properties

Я думаю, что почти все согласны с /build ,

Мне надоело постоянно видеть сообщения о различных library.xml файлы, которые Gradle создает или удаляет в /.idea , build.gradle будет запускаться на локальных серверах разработчиков при первой проверке проекта, так почему же эти XML-файлы должны быть версионными? Android Studio также будет генерировать остальные /.idea когда разработчик создает проект с использованием Check out from Version Control так почему же что-то в этой папке должно быть версионным?

Если *.iml Версионно новый пользователь должен будет назвать проект точно так же, как это было при фиксации. Так как это также сгенерированный файл, почему его версия в первую очередь?

local.properties files указывает на абсолютный путь в файловой системе для SDK, поэтому он не должен быть версионным.

Редактировать 1: Добавлено .gradle игнорировать вещи с кэшированием gradle, которые не должны быть версионированы (спасибо Vasily Makarov).

Редактировать 2: Добавлено .DS_Store теперь, когда я использую Mac. Эта папка предназначена для Mac и не должна быть версионной.

Дополнительное примечание. Возможно, вы также захотите добавить каталог, в который будут помещаться ваши подписывающие ключи при создании версии выпуска.

Для удобства копирования / вставки:

Легкое управление системой контроря версиями Git в Android Studio

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Как вы знаете, лучше всего использовать управление исходными кодами (SCM) для ваших проектов — даже для личных проектов. Знаете ли вы, что Android Studio имеет удивительную интеграцию с Git для управления исходным кодом? Если вы не знали или не имеете опыта использования, продолжайте читать эту статью. Даже если вы уже использовали интеграцию с Git для Android Studio, вы все равно можете найти некоторые полезные трюки.

Я расскажу вам о многих функциях поддержки Git в Android Studio, а также о том, как легко выполнять различные операции Git (commit, push, pull, branch и т.д.) изнутри Android Studio.

В этом уроке я расскажу вам список функций SCM, доступных в Android Studio. Мы рассмотрим следующие области:

  • интеграция нового проекта Android Studio с Git
  • работа с GitHub или Bitbucket
  • Изучение окна Version Control
  • коммиты
  • ветви
  • пушинг и пулинг из удаленного хранилища

Предпосылки

Чтобы иметь возможность следовать этому руководству, вам понадобятся:

Запустите Andro >GitApplicationDemo ) пустым действием MainActivity .

2. Интеграция Git

После того, как был настроен проект Android Studio, щелкните меню VCS, наведите указатель мыши на меню Import in Version Control и выберите Create Git Repository .

Затем выберите главную родительскую папку вашего Android Studio Project.

Нажмите кнопку OK, чтобы инициализировать проект с помощью Git. Под капотом Android Studio выполняет команду Git:

В качестве напоминания, вот что будет делать эта команда:

Эта команда создает пустой репозиторий Git — в основном каталог .git с подкаталогами для objects , refs/head , refs/tags и файлы шаблонов. Также создается начальный файл HEAD , который ссылается на HEAD ведущей ветки.

Появится диалоговое окно с информацией:

Это говорит нам о файле с именем vcs.xml внутри папки .idea. Эта папка содержит только определенные для проекта настройки. Обратите внимание, что это формат, используемый всеми последними версиями IntelliJ IDEA.

В идеале файлы в папке .idea/ не должны доходить до Git, поэтому вы должны добавить ее в .gitignore .

По умолчанию мы переключились на главную ветку. Вы всегда можете просмотреть текущую ветку своего проекта в нижнем правом углу Android Studio.

3. Интеграция с GitHub или Bitbucket

Вы можете легко работать в любом из репозиториев исходного кода Android, который находится в учетной записи GitHub или Bitbucket в Android Studio. Позвольте мне показать вам, как это сделать.

Перейдите в File> New> Project из Control Version> GitHub.

(Если вы хотите работать с репо из Bitbucket, выберите Bitbucket вместо этого. Если вы хотите просто клонировать Git repo из Интернета на свой локальный компьютер, выберите опцию Git.)

Затем введите учетные данные учетной записи GitHub и нажмите «Login».

Если вход был успешным, появится диалоговое окно Clone Repository. В этом диалоговом окне отображается раскрывающийся список, содержащий список репозиториев в GitHub, который вы сейчас используете или над которым работает.

Нажмите «Clone», чтобы клонировать репо на локальный компьютер в уже выбранном родительском каталоге.

4. Окно контроля версий

После успешного запуска нашего проекта Android Studio с помощью Git, Android Studio отобразит окно Version Control. Перейдите на вкладку Version Control (в левом нижнем углу Android Studio), и давайте посмотрим, что у нас есть. Обратите внимание, что вы можете использовать Alt-9, чтобы быстро открыть это окно.

Внутри этого окна у нас есть три разных вкладки: Local Changes, Console, и Log.

Вкладка The Local Changes

Это показывает список файлов, которые были изменены локально (на вашем собственном компьютере) и еще не зафиксированы в репозитории.

Давайте посмотрим на панели инструментов элемента, доступные, когда вы находитесь на вкладке Local Changes.

  1. Нажмите этот значок, чтобы обновить статус ваших файлов на текущем рабочем месте. Горячая клавиша — Control-F5.
  2. Этот значок при нажатии будет фиксировать текущие изменения. Горячая клавиша — Control-Alt-Z.
  3. Нажмите этот значок, чтобы отменить все выбранные изменения.
  4. Нажмите этот значок, чтобы создать новый список изменений. Обратите внимание, что список изменений — это набор изменений в файлах, которые представляют собой логическое изменение исходного кода. Горячая клавиша — Alt-Insert.
  5. Нажмите эту кнопку, чтобы удалить выбранный список изменений.
  6. Чтобы сделать список изменений активным, просто нажмите этот значок.
  7. Чтобы переместить выбранный файл в другой список изменений, щелкните этот значок.
  1. Нажмите этот значок, чтобы открыть его, чтобы просмотреть все файлы.
  2. Нажмите этот значок, чтобы свернуть все файлы.
  3. Нажмите этот значок, чтобы отобразить измененные файлы, сгруппированные по папкам.
  4. Нажмите этот значок, чтобы скопировать путь к выбранному файлу в буфер обмена системы.
  5. Щелкните этот значок, чтобы отобразить узел игнорируемых файлов, список существующих файлов, игнорируемых Git.
  6. Нажмите этот значок, чтобы настроить список файлов, которые Git игнорирует.
  7. Нажмите этот значок, чтобы открыть панель Preview Diff, чтобы сравнить текущий файл с последней совершенной версией.

Вкладка The Console

Внутри этой вкладки мы видим результат выполнения команд, связанных с Git. Обратите внимание, что вы не можете писать команды Git внутри этой вкладки — сделайте это в окне терминала в Android Studio.

Вкладка Log

На этой вкладке отображаются все изменения, которые были зафиксированы во всех ветвях локального и удаленного репозитория. Внутри этой вкладки вы можете просматривать фиксации в любой ветке.

Поле поиска используется для поиска коммитов, которые имеют введенную строку или регулярное выражение.

  1. Это выпадающее меню, которое используется для фильтрации, фиксируется веткой. Чтобы просмотреть все локальные и удаленные коммиты, просто выберите All (по умолчанию).
  2. Чтобы фильтровать фиксацию автором, используйте этот раскрывающийся список. Вам нужно будет ввести имя автора, чтобы просмотреть свои коммиты. Выберите All, чтобы просмотреть коммиты всех пользователей.
  3. Используйте это раскрывающееся меню для фильтрации фиксации по временному диапазону или определенной дате. Чтобы уточнить дату, просто нажмите Select и выберите дату. Выберите All, чтобы просмотреть фиксации, сделанные во все даты.
  4. Используйте это раскрывающееся меню для фильтрации коммитов по пути измененных файлов.
  5. Эта кнопка (IntelliSort) позволяет более удобный способ видеть слияния, сначала отображая входящие коммиты, непосредственно под фиксацией слияния.
  6. Если эта кнопка включена, длинные ветви отображаются полностью, даже если в них нет коммитов.
  7. Используйте эту кнопку, чтобы обновить список коммитов в проекте.
  8. Чтобы перейти к хэшу, тегу или ветви, просто используйте эту кнопку.
  9. Нажмите эту кнопку, чтобы применить изменения от выбранной фиксации к текущей ветке.
  10. Нажмите эту кнопку, чтобы выделить фиксации из выбранной ветви, которые еще не были применены к текущей ветке.

Подробнее об окне инструмента Version Control вы можете узнать в документации IntelliJ IDEA.

5. Выполнение фиксации

Вы заметите, что когда мы настроили интеграцию Git с нашим проектом Android Studio, цвет нашего файла стал коричневым. Согласно официальной документации IntelliJ IDEA, для файлов с коричневыми метками:

Файл существует локально, но не находится в репозитории и не предназначен для добавления.

Давайте посмотрим, как сделать фиксацию в Andro >git add .

Но мы можем сделать это прямо из Android Studio. Выберите раскрывающийся список «Неверсированные файлы» на вкладке «Локальные изменения», щелкните правой кнопкой мыши и перейдите в «Git»> «Добавить» или «Control-Alt-A». Помните, что выбор корневой папки добавит все, что находится внутри нее, в промежуточную область.

Теперь вы заметите, что цвета ярлыков ваших файлов изменились с коричневого на зеленый. Вот что в документации IntelliJ IDEA говорится о именах файлов, которые окрашены в зеленый цвет:

Файл планируется добавить в репозиторий.


Чтобы узнать больше о разных цветах, имя файла может быть указано в зависимости от состояния файла в Android Studio (IntelliJ IDEA), проверьте статусы файлов из документации.

Чтобы окончательно зафиксировать наши изменения, нажмите кнопку фиксации фиксации на вкладке Local Changes и откроется диалоговое окно Commit Changes.

  1. Здесь мы можем выбрать или отменить выбор файлов, которые должны быть включены в эту фиксацию. По умолчанию проверяются все поэтапные файлы.
  2. Напишите здесь сообщение о фиксации. Если у вас есть ранее записанное сообщение фиксации, оно будет отображаться здесь как значение по умолчанию.
  3. Выберите операцию(и) для выполнения перед тем, как фиксировать в Git.
  4. Совместное сравнение измененных файлов.
  5. С помощью этой кнопки вы можете зафиксировать и запушить или просто зафиксировать.

Чтобы сделать фиксацию, давайте напишем сообщение о фиксации:

Выберите Commit в раскрывающемся списке «Commit», чтобы, наконец, зафиксировать свои изменения. Обратите внимание, что вы можете использовать горячие клавиши Control-K для фиксации изменений в любое время из Android Studio.

Если вы сейчас перейдете на вкладку Local Changes в окне Version Control, вы больше не увидите ни одного из ваших файлов, потому что мы успешно передали их в нашем локальный репозиторий.

Обратите внимание, что вы также можете перейти в VCS> Git> Commit File . чтобы сделать фиксацию и VCS> Git> Add, чтобы добавить файл для постановки. Кроме того, вы можете щелкнуть значок фиксации изменений на главной верхней панели инструментов в Android Studio, чтобы быстро совершить фиксацию.

В нашем классе MainActivity.kt я сделал простую модификацию в классе, переопределив onResume() . Вы заметите, что цвет имени файла после модификации теперь синий; это означает, что мы изменили файл.

Просмотр журнала фиксаций

Теперь снова перейдите в окно Version Control и перейдите на вкладку Log. Теперь вы увидите коммиты, которые были сделаны в этом проекте. Чтобы получить более подробную информацию о любой фиксации, просто нажмите на нее.

  1. Эта основная панель показывает все фиксации проекта в соответствии с выбранным фильтром. Другими словами, это показывает нам историю фиксации.
  2. На этой панели отображаются файлы и папки, на которые влияет фиксация, выбранная в панели истории фиксации.
  3. Эта панель отображает более подробную информацию о выбранной фиксации.

Щелкнув правой кнопкой мыши на фиксации, вы также можете увидеть меню, в котором вы можете скопировать номер версии, создать патч, проверить ревизию, ответвление от этой фиксации, создать новый тег и сбросить текущую ветвь до этого фиксации ,

Давайте посмотрим, как мы можем посмотреть, какой код был добавлен, отредактирован или удален. Другими словами, мы хотим более подробно ознакомиться с внесенными изменениями.

Просто нажмите значок show diff над окном, где показаны файлы, затронутые фиксацией. Горячей клавишей является использование Control-D или двойной щелчок по файлу или папке.

Вы увидите диалог Show Diff, показывающий различия между предыдущей фиксацией и выбранной фиксацией.

Зеленый цвет области в файле выделяет строки, которые были добавлены в файл — вы должны увидеть некоторые, если вы следуете. Серые области выделяют линии, которые были удалены. И синий выделяет линии, которые были изменены. Попробуйте изучить фильтры и кнопки значков, доступные в верхней части диалогового окна Show Diff, чтобы узнать больше об этом.

Обратите внимание, что вы также можете увидеть изменения в изображениях в диалоговом окне Show Diff!

Щелкнув правой кнопкой мыши по файлу, вы также можете увидеть разницу между последней фиксацией и текущей фиксацией этого файла — show diff (Control-D). Вы также можете отредактировать исходный файл (F4), открыть версию в репозитории, вернуть выбранные изменения, показать историю для ревизии и показать детали фиксации для этого файла.

Цукерберг рекомендует:  Используем презентацию Google Docs на своем сайте

6. Создание ветки Git

По умолчанию основная ветка будет текущей. Тем не менее, рекомендуется всегда отходить от мастера и выполнять свою работу в отдельной ветви, специфичной для конкретной задачи. Когда вы закончите кодирование своей функции (и когда вы проверили свои изменения), вы затем объедините свои изменения в главную ветку.

Давайте посмотрим, как создать ветку от мастера.

Перейдите в нижний правый угол Android Studio и нажмите раскрывающееся меню Git: master.

Нажмите кнопку New Branch.

Введите название ветки. В нашем случае используйте dev.

Наконец, нажмите кнопку «ОК» для Android Studio, чтобы автоматически создать ветвь dev, а также перейти на эту ветку.

Сейчас мы находимся в ветке dev. Как вы можете видеть ниже:

Под капотом Android Studio выполняет команду:

Обратите внимание, что мы также можем создать новую ветку, перейдя в VCS> Git> Branches> New Branch.

7. Слияние веток Git

Внутри ветви dev просто создайте основной профиль ProfileActivity.kt и его файлы макета и зафиксируйте свои изменения. Мы собираемся посмотреть, как смержить dev в мастер.

Выйдите из текущей ветви (dev) в ветвь master (это означает, что мы переключаемся с dev на master).

Слияние, проверка, удаление, сравнение, переименование ветви

Если вы нажмете на ветку, вам будут показаны некоторые операции, которые вы можете выполнить в этой ветке. Операции включают объединение, сравнение двух веток, переименование ветки, ребейз, переход и удаление ветки.

В этой статье мы рассмотрим, как объединять ветки. В основной ветке объедините ветвь dev, перейдя в ветвь dev и нажав Merge в меню.

Это оно! Теперь мы успешно объединили нашу ветвь dev с ветвью master.

За кулисами Android Studio выполняет команду:

Обратите внимание, что мы также можем выполнить расширенное слияние прямо в Android Studio. Мы можем указать стратегию слияния (Resolve, Recursive, Octopus, Ours или Subtree) или не использовать режим fast-forward.

Чтобы установить это при слиянии, перейдите в VCS> Git> Merge Changes .

Здесь вы можете выбрать несколько ветвей для объединения, выбрать стратегию слияния и написать сообщение фиксации. Настоятельно рекомендуется, чтобы вы действительно понимали эти стратегии слияния.

8. Пуш в удаленный репозиторий

Каждый проект Git должен иметь удаленный или центральный репозиторий, где другие разработчики могут учавствовать в проекте из любой точки мира. В Android Studio также можно запушить наши фиксации или изменения в удаленный репозиторий. Для этого перейдите в VCS> Git> Push .

Здесь мы можем добавить URL удаленного репозитория, щелкнув ссылку Define remote в появившемся диалоговом окне Push Commits. Наконец, нажмите кнопку Push, когда закончите! Горячие клавиши Control-Shift-K.

Android Studio выполняет следующую команду за кулисами:

Вы также можете быстро совершить фиксацию нажатием кнопки, нажав на значок фиксации изменений на главной панели инструментов или с помощью Control-K.

9. Вытягивание из удаленного хранилища

Чтобы обновить проект (подтянуть изменения) с последними изменениями из удаленного репозитория (вы должны были добавить удаленный origin), перейдите в VCS> Git> Pull. Это автоматически обновит ваш проект Android Studio самым последним кодом из удаленного репозитория.

Чтобы инициировать pull, вы также можете щелкнуть значок проекта обновления на главной панели инструментов или использовать ярлык Control-T.

Если вы сделаете это, Andro >git pull за кулисами:

Обратите внимание, что если вы столкнулись с конфликтом слияния при пуле или пуше, Android Studio покажет действительно удобный диалог конфликтов слияния, который поможет вам разрешить этот конфликт.

Заключение

В этом уроке вы узнали, как легко выполнять различные операции Git, которые вы обычно можете выполнять в командной строке или в терминале. Использование инструментов Git для Android Studio упрощает и повышает эффективность совместной работы над проектами Android с другими разработчиками.

Чтобы узнать больше о кодировании для Android, ознакомьтесь с некоторыми нашими другими курсами и учебниками здесь, на Envato Tuts +!

Что должно быть у меня.gitignore для проекта Android Studio?

какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, которые все относятся .iml но IntelliJ docs говорят, что .iml должны быть включены в систему управления версиями.

29 ответов:

обновлено до Android Studio 3.0 Пожалуйста, поделитесь недостающие элементы в комментариях.

поздний ответ, но ни один из ответов здесь и здесь был прав на деньги для нас.

Итак, вот наш файл gitignore:

начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

устаревший — для более старого формата проекта добавьте этот раздел в свой gitignore файл:

этот файл должен находиться в корневой папке проекта, а не в папке модуля проекта.

Редактировать Примечания:

начиная с версии 0.3+ кажется, вы можете commit и push *.iml и построить.gradle файлы. Если ваш проект на Gradle в: в новом диалоговом окне открытия/импорта, вы должны проверить «use auto import» установите флажок и отметьте радио. Все пути теперь относительны как предложил @George.

обновленный ответ согласно @128KB добавленные источник и @ Skela предложения

здание на моем обычном Android .gitignore, и после прочтения документации на веб-сайте Intellij IDEA и чтения сообщений на StackOverflow, я построил следующий файл:

также обратите внимание, что, как указано,причине файлы раздел в первую очередь полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете хотите удалить эти строки (*.о и *. так) от вашего .gitignore.

Обновлено 7/2015:

формат проекта на основе каталога (.каталог идей)

этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • все файлы под .idea каталог в корне проекта за исключением the workspace.xml и tasks.xml файлы определенного пользователя настройки
  • все .iml файлы модулей, которые могут быть расположены в разных каталогах модулей (относится к IntelliJ IDEA)

будьте осторожны поделиться следующим:

  • артефакты Android, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • в идее 13 и ранее dataSources.ids , datasources.xml может содержать пароли базы данных. Идея 14 решает эту проблема.


вы можете рассмотреть возможность не делиться следующим:

  • gradle.xml-файл, см. эта дискуссия
  • папка пользовательских словарей (чтобы избежать конфликтов, если другой разработчик имеет то же имя)
  • XML файлы под .idea/libraries в случае, если они генерируется из Gradle проект

формат устаревший проект ( .ipr / .iml / .iws файлы)

  • долю в проекте и .iml файлы модуля, не разделяю the .iws файл, как он хранит пользовательские настройки

хотя эти инструкции предназначены для IntelliJ IDEA, они верны 100% для Android Studio.

здесь .gitignore фрагмент, который включает в себя все вышеперечисленные правила:

я не согласен с этими ответами. Следующая конфигурация отлично подходит для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии dalewking ответ)
  • *.iml
  • local.properties

Я думаю, что почти все согласны с /build .

мне надоело постоянно видеть сообщения о различные library.xml файлы, которые Gradle создает или удаляет в /.idea . Элемент build.gradle будет работать на локальном компьютере разработчиков, когда они впервые проверят проект, так почему эти XML-файлы должны быть версионными? Android Studio также будет генерировать остальную часть /.idea когда разработчик создает проект, используя Check out from Version Control , так почему что-нибудь в этой папке должно быть версионным?

если *.iml версия новый пользователь должен будет назвать проект точно так же, как это было, когда привержен. Поскольку это также сгенерированный файл, зачем его версия в первую очередь?

The local.properties files указывает на абсолютный путь в файловой системе для SDK, поэтому он определенно не должен быть версионным.

изменить 1 добавлено .gradle чтобы игнорировать материал кэширования gradle, который не должен быть версионным (спасибо Василий Макаров).

Edit 2 добавлено .DS_Store теперь, когда я использую Mac. Эта папка является Mac конкретные и должны не быть версионными.

дополнительная информация: вероятно, вы также хотите добавить каталог для размещения ключей подписи при создании версии выпуска.

для удобства копирования / вставки:

Глубокое погружение в папку .idea в Android Studio

Как и для многих разработчиков, папка .idea в Android Studio для меня всегда была, как черный ящик: я знал, что она существует, я знал, что её всегда добавляют в .gitignore, но я решил узнать, для чего же там нужны те или иные файлы и папки, чтобы у меня была возможность обрабатывать иногда возникающие git-конфликты, и для того, чтобы точно знать, какой файл можно безопасно добавить в .gitignore, а какой нет.

Разобрал я это на примере проекта, над которым работаю. И решил поделиться результатом того, что выяснил, т.к. не нашел никакой документации по этому вопросу.

указывает путь, который следует добавить в .gitignore

указывает путь, который Android Studio уже добавила в .gitignore , и вам не следует его версионировать.

указывает путь, который вы должны хранить в git.

assetWizardSettings.xml

Этот файл хранит последнюю иконку, добавленную с помощью интерфейса Android Studio. Его можно безопасно удалить из VCS.

caches

Кэши, как следует из названия, могут быть безопасно добавлены в .gitignore .

Не вижу никаких оснований держать его в VCS, но по умолчанию эта папка в .gitignore не добавлена.

caches/build_file_checksums.ser

По факту, этот файл представляет собой сериализированный экземпляр ProjectBuildFilesChecksums.

Файл необходим, чтобы проверить, изменились ли build.gradle , settings.gradle , local.properties ,

/.gradle/gradle.properties , gradle.properties или файлы build.gradle ваших модулей.

Android Studio использует этот файл для того, чтобы сообщить вам о том, что нужно синхронизировать gradle-файлы.

codeStyles

В этой папке содержатся настройки стилей кода проекта. Его полезно версионировать, если вы меняли стили кода по умолчанию.

dictionaries

Папка содержит запись, которую вы добавили в словарь для проверки кода. Этот словарь важен, если у вас есть строгие правила в вашей CI-системе.

gradle.xml

Рекомендую удалить этот файл из git. Он может содержать локальный путь к вашей версии gradle, а также путь к вашему модулю. Например, вы можете разработать модуль в отдельном репозитории, поэтому путь к модулю может быть специфичным для каждого пользователя.

По всем этим причинам я окончательно удаляю файл gradle.xml из VCS.

inspectionProfiles

Эта папка содержит конкретные Lint-правила для вашего проекта. Поэтому так же, как и папка dictionaries , она должна храниться в git.

libraries

Здесь содержится файл, который указывает, где хранятся jar-файлы ваших библиотек. Поскольку путь загрузки может быть специфичным для каждого пользователя, вы не должны хранить эту папку в VCS.

misc.xml

Файл содержит информацию о проекте: версия Java, тип проекта и др.

Эти сведения касаются проекта и не зависят от пользователя. Поэтому его следует хранить в git.

modules.xml

Этот файл содержит пути к .iml -файлам ваших модулей. Поэтому по аналогии с gradle.xml его нельзя хранить в git.

Здесь хранится расположение ваших элементов в редакторе навигации. Если эта информация имеет отношение к вашему проекту, то стоит сохранить этот файл в git. В противном случае смело добавляйте его в .gitignore , чтобы избежать конфликтов в будущем.

runConfigurations.xml

Имя файла может вам намекнуть, что в нём хранятся конфигурации, которые вы можете добавить, нажав «Изменить конфигурации». Этот файл обязательно нужно хранить в VCS.

vcs.xml

Этот файл содержит информацию о VCS, которую вы используете в своём проекте. Он используется для того, чтобы вы могли использовать графический интерфейс для выполнения операций, связанных с управлением версиями. Его тоже стоит добавить в git.

workspace.xml

Здесь содержится информация о вашем рабочем пространстве в Android Studio. Например, последняя позиция курсора на открытом вами файле. Так что это определенно пользовательская информация, которую нет необходимости хранить в git.

Итоги

Я бы предложил вам добавить всего три строки к файлу .gitignore по умолчанию:

Как я уже сказал в начале этой статьи, я не нашёл никакой документации о содержимом папки .idea , поэтому статья может быть неполной и/или не точна на 100%. Если вы знаете ещё что-то, чего нет в этой статье, то пишите об этом в комменнтарии.

working Что должно быть в моем.gitignore для проекта Android Studio?

gradle gitignore (24)

Какие файлы должны быть в моем .gitignore для проекта Android Studio?

Я видел несколько примеров, в которых все включают .iml но IntelliJ сообщает, что .iml должен быть включен в ваш источник управления.

Это лучший способ генерировать .gitignore here

Нет НИКАКОГО НИКАКАЯ НЕОБХОДИМО добавить в исходный элемент управления любое из следующего:

Таким образом, вы можете настроить hgignore или gitignore соответственно.

В первый раз, когда разработчик клонирует исходный элемент управления, может пойти:

  1. Открыть Android Studio
  2. Импорт проекта
  3. Просмотрите build.gradle в клонированном репозитории и откройте его.

PS: Android Studio затем, через maven, получит плагин gradle, предполагая, что ваш build.gradle выглядит примерно так:

Студия Android создаст содержимое папки .idea (включая файл workspace.xml, который не должен находиться в исходном управлении, потому что он создан ) и папку .gradle.

Этот подход является дружественным Eclipse в том смысле, что элемент управления источником ничего не знает об Android Studio. Android Studio просто требует build.gradle для импорта проекта и создания остальных.

Лучше всего добавить список .gitignore через время разработки, чтобы предотвратить неизвестный побочный эффект, когда Version Control не будет работать по какой-либо причине из-за предопределенного (копирования / вставки) списка откуда-то. Для одного из моих проектов список игнорирования состоит только из:


Я объединять файлы Github .gitignore

Я не согласен со всеми этими ответами. Следующая конфигурация отлично подходит для приложения нашей организации.

  • /build
  • /.idea (с возможными исключениями, см. комментарии в ответе dalewking )
  • *.iml
  • local.properties

Я думаю, что почти все соглашаются /build .

Я устал от постоянного просмотра сообщений о различных файлах /.idea которые Gradle создает или удаляет в /.idea . build.gradle будет запущен на локальном уровне разработчиков, когда они сначала проведут проверку проекта, так почему же эти файлы XML должны быть версиями? Android Studio также сгенерирует остальную часть /.idea когда разработчик создаст проект, используя « Check out from Version Control , так почему же нужно что-нибудь в этой папке иметь версию?

Если *.iml , новый пользователь должен будет назвать проект точно так же, как и при его совершении. Так как это также сгенерированный файл, зачем его в первую очередь?

Файлы local.properties указывают на абсолютный путь к файловой системе для SDK, поэтому он определенно не должен быть версией.

Edit 1 : Добавлено .gradle чтобы игнорировать кеширование градиента, которое не должно быть версией (спасибо Василий Макаров ).

Edit 2 : Добавлено .DS_Store теперь, когда я использую Mac. Эта папка специфична для Mac и не должна быть версией.

Дополнительное примечание . Вероятно, вы также захотите добавить каталог для ввода ключей подписи при создании версии выпуска.

Для удобства копирования / вставки :

Обновлено до Android Studio 3.0. Пожалуйста, поделитесь отсутствующими элементами в комментариях.

Поздний ответ, но ни один из ответов здесь и here был прав на деньги для нас .

Итак, вот наш файл gitignore:

Начиная с Android Studio 2.2 и до 3.0, новые проекты создаются с помощью этого файла gitignore:

Устаревший — для более старого формата проекта добавьте этот раздел в свой файл gitignore:

Этот файл должен находиться в корневой папке проекта, а не внутри папки модуля проекта.

Редактировать заметки:

Начиная с версии 0.3+ кажется, что вы можете зафиксировать и нажать файлы * .iml и build.gradle . Если ваш проект основан на Gradle: в новом диалоговом окне открытия / импорта вы должны установить флажок «use auto import» и пометить флажок «use default gradle wrapper (recommended)» . Все пути теперь относительны, как предложил @George.

Обновленный ответ в соответствии с @ 128KB прилагается источник и @Skela предложения

В этой официальной документации от JetBrains Support говорится следующее:

Он также дает другие рекомендации о том, чтобы быть осторожным.

Основываясь на моем обычном Android .gitignore , и после прочтения документации на сайте Intellij IDEA и чтения сообщений в , я создал следующий файл:

Также обратите внимание, что, как указано, раздел встроенных файлов в основном полезен, когда вы создаете свой собственный собственный код с Android NDK. Если, с другой стороны, вы используете стороннюю библиотеку, которая включает эти файлы, вы можете удалить эти строки (* .o и * .so) из своего .gitignore.

Я поддерживаю фиксацию папки .idea (исключая workspace.xml и tasks.xml ). Но я начинаю приходить к выводу, что файлы .iml следует игнорировать.

Откройте проект в каталоге с именем «foo», и вы получите foo.iml, и все будет хорошо и хорошо. Проблема в том, что если я просто переименую каталог в foo2 (или клонирую его в другое имя каталога), когда вы попытаетесь открыть проект в Android Studio, вы получите три вещи:

  • Новый файл iml с именем foo2.iml
  • Файл iml для вашего проекта Android будет изменен, чтобы теперь указать foo2 в качестве родительского объекта
  • .idea / modules.xml будет добавлена ​​строка для foo2.iml, поэтому у нее есть как старый iml-файл, так и новый для нового каталога

Я не могу найти способа предотвратить создание Android-Studio для создания этого файла iml, когда проект хранится в другом каталоге. Добавление их в исходный контроль вызовет проблемы. Поэтому я думаю, что, возможно, нам следует игнорировать * .iml-файлы и .idea/modules.xml

У меня были проблемы с игнорированием файлов сборки, но это, похоже, работает :-)

Я kosher с добавлением файлов .iml и Intellij sez, чтобы добавить папку .idea, но игнорировать файлы .idea / workspace.xml и .idea / tasks.xml, но как насчет .idea / libraries /?

Я не понимаю, как это имеет смысл добавить это. В нем есть список файлов XML, в которых перечислены библиотеки, о которых должен знать проект Android Studio. Предполагается, что они вместо этого будут созданы из build.gradle определенных зависимостей, а не файла проекта IDE.

Также содержимое одного из этих файлов выглядит следующим образом:

Не имеет смысла это совершать. Что, если пользователь указал другой домашний каталог для градиента, или если он использует другую версию градиента, путь под .gradle/caches/artifacts-xxx будет для них иным (например, artifacts- — число, добавленное в конце, будет относятся к выпуску версии градиента, который вы используете.) Эти пути не универсальны, и все же совет должен проверить все это?

Протестировано с помощью Android Studio 3.0

Возможно, вам потребуется установить плагин .ignore .

Вы можете автоматически генерировать файл .gitignore для Android. Щелкните правой кнопкой мыши по папке и следуйте

Затем выберите «Android» на левой панели и нажмите « Создать».

Android Studio будет генерировать файл .gitignore, содержащий весь файл, который нужно игнорировать.

Для проектов Android Studio 3.0 используйте следующее:

.gitignore

Папка проекта Gradle

Единственное, что должно быть в вашей папке проекта (Gradle) после клонирования репозитория, это эта структура (по крайней мере, для случаев использования, с которыми я столкнулся до сих пор):

Начиная с Android Studio 0.8.4 .gitignore файл генерируется автоматически при запуске нового проекта. По умолчанию он содержит:

Я согласен с этим утверждением, однако я изменяю этот файл для изменения / сборки для сборки / (Это будет включать / build и / app / build). Поэтому я не получаю все файлы в приложении / сборке в моем репозитории.

Также обратите внимание, что если вы импортируете проект из Eclipse, .gitignore не будет скопирован или «автоматически» создан для вас.

Зависит от того, как поддерживается ваш формат проекта:

У вас есть два варианта:

  1. Формат на основе каталога (у вас будет папка .idea содержащая файлы, специфичные для проекта)
  2. Файловый формат (файлы конфигурации — .iws и .ipr )

Файлы, предназначенные для контроля версий, зависят от вышеперечисленного:

  1. Включить папку .idea в управление версиями, исключить workspace.xml и tasks.xml
  2. Файл управления .ipr и все .iml модуля .iml исключают файл .iws поскольку он хранит пользовательские настройки.

Я знаю, что это старая тема, и есть, конечно, много вариантов, но я действительно предпочитаю gibo от Саймона Уитакера. Он очень прост в использовании, кросс-платформенный (mac, * nix и windows), и использует github.com/github/gitignore repo, поэтому он (в основном) всегда обновляется.

Убедитесь, что ваш локальный кеш обновлен:

Найдите необходимый язык / технологию:

Отобразить файл .gitignore:

Теперь добавьте его в файл .gitignore вашего проекта:

(Убедитесь, что вы используете >> для добавления в файл .gitignore вашего проекта, один > перезапишет его — как я много раз делал в случае аварии!)

Я знаю, что это не отвечает на точный вопрос OP, но использование gibo делает так, что вам в значительной степени не нужно больше думать о «вопросе»! .. мило! ;)

Я использую этот .gitignore. Я нашел его по адресу: http://th4t.net/android-studio-gitignore.html

В случае Android Studio единственными файлами, которые необходимо сохранить в управлении версиями, являются файлы, необходимые для создания приложения из командной строки с использованием gradle. Поэтому вы можете игнорировать:

Однако, если вы сохраните настройки IDE, такие как настройки стиля пользовательского кода, они будут сохранены в папке .idea. Если вам нужны эти изменения в управлении версиями, вы также сохраните файлы IDEA (* .iml и .idea).

Чтобы обойти импорт всех файлов, где Android Studio игнорирует список «Игнорируемые файлы», но все же использует Android Studio VCS, я сделал следующее: это будет использовать список «Игнорируемые файлы» из Android Studio (после импорта! Не во время) И избегайте использования громоздкого пути. Tortoise SVN устанавливает список svn: ignore.

  1. Используйте браузер репозитория Tortoise SVN для создания новой папки проекта непосредственно в репозитории.
  2. Используйте Tortoise SVN для проверки новой папки в верхней части папки, которую вы хотите импортировать. Вы получите предупреждение о том, что локальная папка не пуста. Игнорировать предупреждение. Теперь у вас версия с версией верхнего уровня с неверсированным контентом.
  3. Откройте проект из локального рабочего каталога. Теперь VCS можно включить автоматически
  4. Задайте свои файловые исключения в файле -> Настройки -> Контроль версий -> Игнорируемые файлы
  5. Добавить файлы в SVN из Android Studio: выберите «Приложение» в структуре проекта -> VCS -> Добавить в VCS (это добавит все файлы, кроме «Игнорируемые файлы»)
  6. Переменные изменения

Идти вперед, «Игнорируемые файлы» будут проигнорированы, и вы все равно сможете управлять VCS из Android Studio.

Начиная с Android Studio .gitignore файл генерируется автоматически при запуске нового проекта. По умолчанию он содержит:

Обновлено 7/2015:

Формат проекта на основе каталога (каталог .idea)

Этот формат используется всеми последними версиями IDE по умолчанию. Вот что вам нужно поделиться:

  • Все файлы в .idea в корне проекта, за исключением файлов workspace.xml и tasks.xml которые сохраняют пользовательские настройки
  • Все .iml модулей .iml которые могут быть расположены в разных каталогах модулей (применимо к IntelliJ IDEA)

Будьте осторожны, разделив следующее:

  • Android-артефакты, которые создают подписанную сборку (будут содержать пароли хранилища ключей)
  • В IDEA 13 и более ранних dataSources.ids , dataSources.ids может содержать пароли базы данных. IDEA 14 решает эту проблему .

Вы можете не делиться следующим:

  • Файл gradle.xml, см. эту дискуссию
  • папка пользовательских словарей (во избежание конфликтов, если другой разработчик имеет то же имя)
  • XML-файлы в .idea/libraries в случае их создания из проекта Gradle

Формат устаревшего проекта ( .ipr / .iml / .iws )

  • Поделитесь .ipr проекта .ipr и всеми .iml модуля .iml , не .iws файл .iws поскольку он хранит пользовательские настройки

Хотя эти инструкции предназначены для IntelliJ IDEA, они поддерживают 100% для Android Studio.

Вот фрагмент .gitignore который включает все вышеперечисленные правила:

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих