Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android Studio
Code

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

by
Difficulty:BeginnerLength:LongLanguages:

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
  • коммиты
  • ветви
  • пушинг и пулинг из удаленного хранилища

Предпосылки

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

1. Создайте проект Android Studio

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

Create Android Project dialog

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

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

Menu navigation to Create Git Repository

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

Select project folder in Android Studio

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

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

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

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

Add File to Git dialog

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

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

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

Current Git branch toolbar

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

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

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

Navigation to cloning Github repo

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

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

GitHub login dialog

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

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

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

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

Version Control window

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

Вкладка The Local Changes

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

Local changes tab

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

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

Вкладка The Console

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

Console tab

Вкладка Log

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

Log tab

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

  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, для файлов с коричневыми метками:

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

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

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

Adding unversioned files to git

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

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

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

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

Commit Changes dialog
  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, чтобы быстро совершить фиксацию.

commit changes icon

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

Commit changes dialog with file name colour blue

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

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

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

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

Commit menu

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

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

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

Show Diff dialog

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

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

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

File commit menu

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

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

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

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

Git master drop-down menu

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

New Branch button

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

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

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

Currently at dev branch

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

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

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

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

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

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

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

Checking out to the master branch

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

Merging dev branch to master

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

Log tab showing commits in master branch

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

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

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

Merge branches dialog

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

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

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

Push Commits dialog

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

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

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

commit changes icon

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

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

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

Update project icon

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

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

Заключение

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

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

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.