- Подключаем Git к Android Studio
- Как сжимать коммиты в Git с помощью git squash
- Как именно делать git squash
- Применение fixup для сжатия коммитов
- Применение сжатия при слиянии ветвей
- Сжатие коммитов через Github
- Коммиты Squash Git Branch в Android Studio
- 3 ответа
- Простое управление версиями с помощью Git в Android Studio
- Предпосылки
- 1. Создайте проект Android Studio
- 2. Интеграция Git
- 3. Интеграция с GitHub или Bitbucket
- 4. Окно контроля версий
- Локальные изменения T ab
- Консоль T ab
- Вкладка журнала
- 5. Создание коммита
Подключаем Git к Android Studio
Android Studio умеет работать с системами контроля версий (version control system, сокр.VCS). Самой популярной системой является Git, которая стала практически стандартом во многих языках программирования.
Сама по себе Git управляется через командную строку. Для изучения её возможностей есть множество документации. Мы сфокусируемся на подключении Git к проекту в Android Studio.
Чтобы лучше понять объяснения, откройте старый проект Hello Kitty или создайте его заново, если успели его удалить.
Для начала нужно установить Git. Перейдите на страницу загрузки http://git-scm.com/downloads и скачайте последнюю версию под вашу операционную систему.
Запускаем процесс инсталяции. Не рекомендую устанавливать в папку по умолчанию в системной папке Windows C:\Program Files, так как из-за пробела между словами часто возникают проблемы у многих пользователей при работе с командной строкой. Я установил в папке D:\Git. Желательно также прописать путь к папке D:\Git\bin\ в переменной окружения PATH.
Запускаем файл git-bash.exe для запуска консоли. Следует сконфигурировать Git, указав своё имя и электронный адрес, чтобы можно было установить авторство изменений в коде. Вводим по очереди две команды:
Возвращаемся в студию. Выбираем в меню File | Settings и в диалоговом окне в левой части выбираем секцию Version Control | Git. Нажимаем кнопку с многоточием и находим нужный файл на диске.
Для проверки можно щёлкнуть по кнопке Test, вы должны увидеть радостное сообщение в успешном случае. Закрываем окно настроек, применив изменения.
Данная настройка запоминается и в новых проектах этот шаг можно пропустить.
Далее идём в меню VCS | Import into Version Control | Create Git Repository и в диалоговом окне выбираем корневую папку проекта. Для удобства можно сразу нажать на значок студии (третий слева), чтобы сразу переместиться в корневую папку, если окно откроется с другой папкой.
Нажимаем кнопку OK и создаём локальный Git-репозиторий. Под капотом выполняется команда git init.
Как только вы это сделаете, в студии произойдут удивительные изменения. Многие имена файлов в левой панели окрасятся в коричневый цвет.
Коричневый цвет шрифта означает, что файл распознан системой контроля версий на локальном компьютере, но ещё не добавлен в репозиторий. Нам следует подсказать системе об этом.
Но не будем торопиться. При создании локального репозитория студия также создала несколько специальных файлов .gitignore, которые помогают системе контроля версий игнорировать некоторые файлы проекта при изменениях. Один такой файл вы можете найти в корневой папке проекта, а второй в папке app. Можете открыть их любым текстовым редактором. Начнём с файла из корневой папки.
Как видим, Git будет игнорировать файл .idea/workspace.xml, который относится к конфигурации самой студии на вашем компьютере и к самому проекту не имеет отношения. Аналогично будет проигнорирован файл local.properties, который является уникальным для каждого компьютера. Можно указывать не только отдельные файлы, но и папки. Например, в списке присутствует папка /build. В эту папку попадают файлы при компиляции. Их нет смысла отслеживать, так как они постоянно меняются, когда вы запускаете приложение для проверки. Все файлы, которые должны быть проигнорированы, выводятся обычным чёрным цветом. Обратите внимание на имя файла local.properties на скриншоте выше.
Кроме чёрного и коричневого цвета, имена файлов могут также выводиться синим цветом (файл изменён), зелёным (новый файл).
При подключении Git в нижней части студии появится новая вкладка Version Control. Откройте её. Сейчас вы видите две секции: Default и Unversioned Files. Секция Default сейчас пуста. При изменении или создании новых файлов они попадут в эту секцию. Секция Unversioned Files содержит файлы, которые ещё не были учтены системой контроля версий.
При создании нового проекта файлы автоматически не учитываются и находятся в секции Unversioned Files. Мы хотим их перенести в репозиторий. В левой части панели находятся две колонки со значками. Найдите значок с изображением папки в скобках (при подведении курсора появится подсказка Group by Directory) и нажмите на неё. Файлы будут сгруппированы, как в проекте. Так проще вам будет понять структуру.
Щёлкаем правой кнопкой мыши на Unversioned Files и выбираем в контекстном меню Add to VCS. Либо можно перетащить мышкой эту секцию на секцию Default. В результате все файлы переместятся и будут учтены системой контроля версий.
После добавления файлов нажмите на значок с зелёной стрелкой вверх и надписью VCS (Commit Changes). Откроется диалоговое окно. В текстовом поле Commit Message введите текст, поясняющий изменения в проекте и нажмите кнопку Commit.
Файлы исчезнут из секции Default и теперь находятся под контролем Git. При изменении файл снова попадёт в данную секцию и вам снова нужно выполнить предыдущую операцию Commit.
Например, откроем файл манифеста и добавим разрешение на работу с интернетом. Файл окрасится в синий цвет. Комментируем изменения в проекте, добавив сообщение Добавлено разрешение на интернет.
Просматривать изменения можно на вкладке Log. Вы можете просматривать коммиты и ветки.
Таким образом мы познакомились с базовыми приёмами работы с Git.
Также вы можете создавать новые ветки, сливать их в одну и выполнять прочие операции.
Естественно, вы можете также выкладывать проект на GitHub или наоборот вносить изменения в локальный проект из удалённого репозитория.
Источник
Как сжимать коммиты в Git с помощью git squash
Aug 31, 2020 · 5 min read
Для начала давайте разберемся: что же это вообще такое — git squash .
Git squash — это прием, который помогает взять серию коммитов и уплотнить ее. Например, предположим: у вас есть серия из N коммитов и вы можете путем сжатия преобразовать ее в один-единственный коммит. Сжатие через git squash в основном применяется, чтобы превратить большое число малозначимых коммитов в небольшое число значимых. Так становится легче отслеживать историю Git.
Также этот прием используется при объединении ветвей. Чаще всего вам будут советовать всегда сжимать коммиты и выполнять перебазирование с родительской ветвью (например, master или develop ). В таком случае история главной ветки будет содержать только значимые коммиты, без ненужной детализации.
Как именно делать git squash
Возьмем для примера следующую историю Git:
Здесь видны последние три коммита. В сообщениях к ним поясняется, что мы добавили новый файл и какое-то содержимое. Лучше заменить их одним единственным коммитом о том, что произошло добавление нового файла с некоторым содержимым. Итак, давайте посмотрим, как сжать последние три коммита в один:
git rebase -i — интерактивный инструмент, который помогает сжимать коммиты. У него много возможностей, но давайте сосредоточимся на git squash .
Если вы не очень хорошо знакомы с перебазированием — не волнуйтесь. Сжатие коммитов — одна из самых простых операций, которые выполняются через интерактивный git-rebase (т.е. git rebase -i ). HEAD
3 означает, что мы берем последние три коммита.
Далее откроется редактор. Посмотрите, rebase -i охватывает только последние три коммита, и обратите внимание на количество опций. Нас, однако, интересует только squash . Давайте же приведем все к одному коммиту.
Как видите, для сжатия мы отметили последние два коммита с помощью команд squash или s .
В примере, приведенном выше, коммиты, предназначенные для сжатия, будут слиты с основным коммитом — тем, который отмечен командой pick . Отметив коммиты, сохраните изменения в редакторе.
Далее rebase -i снова откроет редактор для ввода сообщения о коммите, как на картинке ниже:
Отредактировав и сохранив сообщения, можете закрыть редактор. Обратите внимание: строки, которые начинаются с # , будут проигнорированы. После этого журнал Git будет выглядеть следующим образом:
Здесь изменилось сообщение о коммите, и обратите внимание: три коммита “склеились” в один. Также изменился хэш коммита. Через git rebase всегда создается новый коммит, содержащий соответствующие изменения.
Так что используйте этот инструмент с осторожностью.
Помните: сжатие коммитов меняет историю Git, поэтому не рекомендуется сжимать ветвь, если вы уже отправили ее в удаленный репозиторий. Всегда выполняйте сжатие до того, как отправить пуш с изменениями.
Применение fixup для сжатия коммитов
Для того, чтобы сжимать коммиты, также можно воспользоваться опцией fixup . Это то же самое, что и squash , только без возможности редактировать сообщение о коммите. Сообщение о коммите в таком случае будет целиком взято из “целевого” коммита — того, который был выбран с помощью pick . Давайте посмотрим на примере:
Воспользуйтесь командой fixup или f , чтобы выбрать коммиты. После этого сохраните изменения в редакторе. Инструмент интерактивного перебазирования сохранит сообщение о коммите. В результате история Git будет выглядеть так:
Обратите внимание: хэш коммита также изменился, а сообщение о коммите берется из “основного” коммита, с которым были сжаты другие два.
Применение сжатия при слиянии ветвей
Git также предоставляет возможность сжатия при объединении ветвей. Во многих случаях она может оказаться полезной. Чтобы добавить новый функционал или поправить какие-то баги, нам понадобится то и дело что-то изменять в ветвях. Поэтому, когда мы будем готовы слить эти изменения в основную ветвь ( master или develop ), для начала следует применить сжатие.
Давайте рассмотрим следующую команду:
Она берет все коммиты из целевой ветви, сжимает их и сохраняет все изменения в текущей ветви. Затем вы можете зафиксировать все изменения в одном коммите. На примере это выглядит так:
Здесь мы провели слияние нашей ветви с develop с помощью —squash . Git воспримет и сохранит сделанные таким образом изменения.
Сжатие коммитов через Github
Возможность сжимать коммиты предоставляет и Github. Эта функция особенно полезна при пулл-реквесте.
Сначала производится сжатие, затем — слияние. Так что вместо пяти коммитов получится один.
Как видно на картинке, выполняется всего один коммит с соответствующим сообщением.
Спасибо за чтение! Надеюсь, вы почерпнули из статьи что-то новое 🙂
Источник
Коммиты Squash Git Branch в Android Studio
Я предпочитаю как можно больше использовать пользовательский интерфейс Android Studio VCS. В настоящее время, когда мне нужно сквошить коммиты, мне нужно пройти через командную строку и даже открыть редактор командной строки (с помощью команды git rebase -i).
Я надеялся, что есть простой способ сделать это через пользовательский интерфейс Visual Studio. Есть один?
3 ответа
Перейдите в VCS -> Git -> Rebase. , там вы можете, среди прочего, отметить «Интерактивный». По крайней мере, в последней версии IntelliJ IDEA это так, а AS основана на IJ. Если ваша версия AS основана на более старой версии IJ, она может быть другой, если возможно.
Кстати. вам не нужно использовать редактор командной строки при интерактивном перемещении из командной строки. Я е. г. есть псевдоним, который устанавливает для моего редактора Git значение jEdit, поэтому я могу выбрать для каждой команды, которой нужен редактор, хочу ли я использовать редактор командной строки vim или инструмент jEdit с графическим интерфейсом. Но, конечно, его можно настраивать и без псевдонима.
Я на всякий случай добавляю сюда весь процесс раздавливания фиксации.
- Щелкните элемент управления версиями на нижней панели инструментов (cmd + 9)
- Выберите вкладку журнала
- Выберите базовую фиксацию и щелкните ее правой кнопкой мыши.
- Выберите здесь Interactively Rebase, как показано @Crain
- В следующем окне выберите сквош из раскрывающегося списка для коммитов, которые вы хотите сквошить.
Я тоже предпочитаю использовать пользовательский интерфейс. Я обнаружил, что коммиты сквоша могут быть сделаны в окне «Rebasing commitits»: «Version Control» -> «Log» -> «Select base commit» -> «Context menu» -> «Interactively Rebase From Вот. «
Источник
Простое управление версиями с помощью 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
- исследовать окно контроля версий
- фиксаций
- ветви
- толкание и извлечение из удаленного хранилища
Предпосылки
Чтобы следовать этому руководству, вам понадобится:
1. Создайте проект Android Studio
GitApplicationDemo Android Studio и создайте новый проект (вы можете назвать его GitApplicationDemo ) с пустым действием MainActivity .
2. Интеграция Git
После того, как ваш проект Android Studio был настроен, щелкните меню VCS , наведите курсор на меню « Импорт в контроль версий» и выберите « Создать Git-репозиторий» …
Затем выберите верхнюю родительскую папку вашего Android Studio Project.
Нажмите кнопку ОК , чтобы инициализировать проект с помощью Git. Под капотом Android Studio выполняет команду Git:
Напомним, что эта команда будет делать:
Эта команда создает пустой Git-репозиторий — в основном каталог .git с подкаталогами для objects , refs/heads , refs/tags и файлами шаблонов. Первоначальный файл HEAD который ссылается на HEAD главной ветви, также создается.
Появится информационный диалог:
Это говорит нам о файле с именем vcs.xml в папке .idea . Эта папка содержит только настройки проекта. Обратите внимание, что этот формат используется во всех последних версиях IntelliJ IDEA.
В идеале файлы в .idea/ не должны доходить до Git, поэтому вы должны добавить его в .gitignore .
По умолчанию мы переключаемся на основную ветку. Вы всегда можете просмотреть текущую ветку вашего проекта в правом нижнем углу Android Studio.
3. Интеграция с GitHub или Bitbucket
Вы можете легко работать с любым репозиторием исходного кода Android, который находится в GitHub или Bitbucket в Android Studio. Позвольте мне показать вам, как это сделать.
Перейдите в Файл> Создать> Проект из контроля версий> GitHub .
(Если вы хотите работать с репозиторием из Bitbucket, выберите Bitbucket . Если вы хотите просто клонировать репозиторий Git из Интернета на локальный компьютер, выберите опцию меню Git .)
Затем введите учетные данные GitHub и нажмите « Войти» .
Если вход был успешным, появится диалоговое окно Clone Repository . В этом диалоговом окне отображается раскрывающийся список, содержащий список репозиториев на GitHub, которым вы в настоящее время владеете или над которыми работали.
Нажмите Клонировать, чтобы клонировать репо на локальный компьютер в уже выбранном родительском каталоге.
4. Окно контроля версий
После успешного запуска нашего проекта Android Studio с помощью Git, Android Studio покажет окно контроля версий . Нажмите на вкладку « Контроль версий » (в левом нижнем углу Android Studio) и давайте рассмотрим, что у нас там. Обратите внимание, что вы можете использовать Alt-9, чтобы быстро открыть это окно.
Внутри этого окна у нас есть три разных вкладки: Локальные изменения , Консоль и Журнал .
Локальные изменения T ab
Здесь показан список файлов, которые были изменены локально (на вашем компьютере) и еще не добавлены в хранилище.
Давайте посмотрим на панели инструментов элементов, доступные, когда вы находитесь на вкладке Локальные изменения .
- Нажмите на этот значок, чтобы обновить статус ваших файлов на текущем рабочем месте. Сочетание клавиш Control-F5 .
- Этот значок при нажатии подтвердит ваши текущие изменения. Сочетание клавиш Control-Alt-Z .
- Нажмите на этот значок, чтобы откатить любые выбранные изменения.
- Нажмите на этот значок, чтобы создать новый список изменений. Обратите внимание, что список изменений — это набор изменений в файлах, который представляет собой логическое изменение исходного кода. Это сочетание клавиш Alt-Insert .
- Нажмите эту кнопку, чтобы удалить выбранный список изменений.
- Чтобы активировать список изменений, просто нажмите этот значок.
- Чтобы переместить выбранный файл в другой список изменений, щелкните этот значок.
- Нажмите на этот значок, чтобы развернуть, чтобы просмотреть все файлы.
- Нажмите на этот значок, чтобы свернуть все файлы.
- Нажмите этот значок, чтобы отобразить измененные файлы, сгруппированные по папкам.
- Нажмите этот значок, чтобы скопировать путь к выбранному файлу в буфер обмена системы.
- Нажмите этот значок, чтобы отобразить узел игнорируемых файлов со списком существующих файлов, игнорируемых Git.
- Нажмите на этот значок, чтобы настроить список файлов, которые будут игнорироваться Git.
- Нажмите этот значок, чтобы открыть панель « Просмотр различий», чтобы сравнить текущий файл с последней принятой ревизией.
Консоль T ab
Внутри этой вкладки мы видим результат выполнения команд, связанных с Git. Обратите внимание, что вы не можете писать команды Git на этой вкладке — делайте это в окне терминала в Android Studio.
Вкладка журнала
На этой вкладке отображаются все изменения, которые были зафиксированы во всех ветвях локального и удаленного репозитория. Внутри этой вкладки вы можете просматривать коммиты в любой ветке.
Поле поиска используется для поиска коммитов, которые имеют введенную строку или регулярное выражение.
- Это раскрывающийся список, который используется для фильтрации фиксаций по веткам. Чтобы просмотреть все локальные и удаленные коммиты, просто выберите « Все» (по умолчанию).
- Чтобы отфильтровать коммиты по автору, используйте этот выпадающий список. Вы должны будете ввести имя автора, чтобы просмотреть его коммиты. Выберите Все, чтобы просмотреть коммиты всех пользователей.
- Используйте этот раскрывающийся список, чтобы отфильтровать коммиты по временному диапазону или по определенной дате Чтобы быть точным в дате, просто нажмите « Выбрать» и выберите дату. Выберите Все, чтобы просмотреть коммиты, сделанные на все даты.
- Используйте это раскрывающееся меню для фильтрации коммитов по пути измененных файлов.
- Эта кнопка (IntelliSort) позволяет более удобно просматривать слияния, сначала отображая входящие коммиты, прямо под коммитом слияния.
- Если эта кнопка включена, длинные ветви отображаются полностью, даже если в них нет коммитов.
- Используйте эту кнопку, чтобы обновить список коммитов в проекте.
- Чтобы перейти к хешу, тегу или ветке, просто используйте эту кнопку.
- Нажмите эту кнопку, чтобы применить изменения из выбранного коммита к текущей ветви.
- Нажмите эту кнопку, чтобы выделить коммиты из выбранной ветви, которые еще не были применены к текущей ветви.
Вы можете узнать больше об окне инструмента контроля версий в документации IntelliJ IDEA .
5. Создание коммита
Вы заметите, что когда мы настроили интеграцию Git с нашим проектом Android Studio, цвет имени нашего файла стал коричневым. Согласно официальной документации IntelliJ IDEA, для файлов с коричневыми метками:
Файл существует локально, но отсутствует в хранилище и не запланирован для добавления.
Давайте теперь посмотрим, как сделать коммит в Android Studio. Но сначала нам нужно добавить наши изменения в рабочем каталоге в область подготовки. В консоли мы будем использовать команду git add .
Но мы можем сделать это прямо из Android Studio. Выберите раскрывающийся список « Неверсированные файлы» на вкладке « Локальные изменения », щелкните правой кнопкой мыши и перейдите в « Git»> «Добавить» или используйте Control-Alt-A . Помните, что выбор корневой папки добавит все, что находится внутри нее, в область подготовки.
Источник