Статьи

Простое управление версиями с помощью Git в Android Studio

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

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

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

  • интеграция нового проекта Android Studio с Git
  • работа с GitHub или Bitbucket
  • исследовать окно контроля версий
  • фиксаций
  • ветви
  • толкание и извлечение из удаленного хранилища

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

GitApplicationDemo Android Studio и создайте новый проект (вы можете назвать его GitApplicationDemo ) с пустым действием MainActivity .

Диалог создания проекта Android

После того, как ваш проект Android Studio был настроен, щелкните меню VCS , наведите курсор на меню « Импорт в контроль версий» и выберите « Создать Git-репозиторий» …

Навигация по меню для создания Git Repository

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

Выберите папку проекта в Android Studio

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

1
git init

Напомним, что эта команда будет делать:

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

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

Диалог добавления файла в Git

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

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

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

Текущая панель инструментов Git

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

Перейдите в Файл> Создать> Проект из контроля версий> GitHub .

Навигация к клонированию репозитория Github

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

Затем введите учетные данные GitHub и нажмите « Войти» .

Диалог входа в GitHub

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

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

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

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

Внутри этого окна у нас есть три разных вкладки: Локальные изменения , Консоль и Журнал .

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

Вкладка Локальные изменения

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

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

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

Вкладка консоли

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

Вкладка Журнал

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

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

Вы можете узнать больше об окне инструмента контроля версий в документации IntelliJ IDEA .

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

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

Давайте теперь посмотрим, как сделать коммит в Android Studio. Но сначала нам нужно добавить наши изменения в рабочем каталоге в область подготовки. В консоли мы будем использовать команду git add .

1
git add <file> ||

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

Добавление неверсионных файлов в git

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

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

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

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

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

Итак, чтобы сделать коммит, давайте напишем сообщение коммита:

1
Initial commit

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

Если вы сейчас вернетесь на вкладку « Локальные изменения » в окне « Контроль версий» , вы больше не увидите там ни одного из ваших файлов, потому что мы успешно зафиксировали их в нашем локальном репо.

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

значок фиксации изменений

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

Диалог фиксации изменений с синим цветом имени файла

Теперь снова откройте окно контроля версий и перейдите на вкладку « Журнал ». Теперь вы увидите коммиты, которые были сделаны в этом проекте. Чтобы получить более подробную информацию о коммите, просто нажмите на него.

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

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

Фиксация меню

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

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

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

Показать диалоги различий

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

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

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

Меню фиксации файла

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

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

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

Git master выпадающее меню

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

Кнопка Новая ветка

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

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

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

В настоящее время на ветке разработки

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

1
git checkout -b dev

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

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

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

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

Выезд в мастер ветку

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

Слияние ветки разработчика с мастером

Это оно! Теперь мы успешно слили нашу ветку dev с веткой master.

Вкладка журнала, показывающая коммиты в главной ветке

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

1
git merge dev

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

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

Диалог слияния веток

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

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

Диалог толчка коммитов

Здесь мы можем добавить URL-адрес удаленного репозитория, нажав на ссылку « Определить удаленный репозиторий» в всплывающем диалоговом окне « Push Commits ». Наконец, нажмите кнопку Push , когда закончите! Ярлык должен использовать Control-Shift-K .

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

1
git push

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

значок фиксации изменений

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

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

Обновить значок проекта

Если вы сделаете это, Android Studio выполнит команду Git pull за кулисами:

1
git pull

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

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

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

  • Android SDK
    Отображение диалогов дизайна материала в приложении для Android
  • Android SDK
    Создание интерфейса с вкладками «Дизайн материала» в приложении для Android
  • Android SDK
    Создание музыкального приложения с помощью шаблона приложения для Android