| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Использование поддержки Git в IDE NetBeans |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Использование поддержки Git в IDE NetBeans - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Использование поддержки Git в IDE NetBeans |
| |
| IDE NetBeans обеспечивает поддержку для клиента управления версиями Git. Благодаря этой поддержке выполнять задачи контроля версий можно непосредственно из среды IDE. В этом документе демонстрируется выполнение основных задач контроля версий в среде IDE путем рассмотрения стандартной последовательности действий при использовании программного обеспечения контроля версий. |
| |
| Git является распределенной системой с открытым кодом, предназначенной для быстрого и эффективного контроля версий как в небольших, так и в масштабных проектах. Каждый клон Git представляет собой полнофункциональный репозиторий с полным набором возможностей отслеживания редакций и истории, не зависящими от наличия сетевого доступа или доступа к центральному серверу. Операции ветвления и слияния выполняются быстро и без затруднений. Использование Git для контроля версий файлов в большой степени сходно с использованием таких систем, как Mercurial, Subversion, CVS, Perforce и т.п. |
| |
| |
| |
| image::images/netbeans-stamp-80-74.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.4 и 8.0"] |
| |
| |
| |
| == Требования |
| |
| *Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.* |
| |
| |=== |
| |Программное обеспечение или материал |Требуемая версия |
| |
| |link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |Версия 7.4 или 8.0 |
| |
| |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработки приложений на языке Java+] (JDK) |Версия 7 или 8 |
| |=== |
| |
| |
| == Инициализация репозитория Git |
| |
| Для инициализации репозитория Git с использованием существующих файлов, контроль исходных кодов которых еще не осуществляется, требуется выполнить следующие действия. |
| |
| 1. В окне 'Проекты' выберите проект, для которого не осуществляется управление версиями, и щелкните правой кнопкой мыши имя проекта. |
| 2. В контекстном меню выберите ``Создание версии`` > ``Инициализировать репозиторий Git`` (или выберите в главном меню ``Группа`` > ``Git`` > ``Инициализировать`` ). |
| |
| [.feature] |
| -- |
| |
| image::images/initialize-git-repo-small.png[role="left", link="images/initialize-git-repo.png"] |
| |
| -- |
| |
| |
| . В диалоговом окне ``Инициализировать репозиторий Git `` укажите путь к репозиторию, в котором будут храниться файлы с контролем версий, или щелкните "Обзор" и выберите требуемый каталог. |
| . Нажмите кнопку "ОК". |
| |
| В папке, указанной выше в шаге 3 (папка проекта NetBeans по умолчанию), создается вложенная папка ``.git`` , являющаяся репозиторием Git, в котором будут храниться все данные моментальных снимков проекта. В указанной папке Git запускает создание версий для всех файлов. |
| В окне ``Окно`` > ``Вывод`` > ``Выходные данные`` можно просмотреть отчет среды IDE о ходе создания репозитория в локальном рабочем каталоге. |
| |
| image::images/output-init.png[] |
| |
| В рабочем дереве все файлы проекта помечены как ``Добавленные`` . Для просмотра <<viewFileStatus,состояния>> файла наведите курсор на имя файла в окне проектов. В рабочем дереве состояние файла отображается в зеленом цвете справа от косой черты, как показано на следующем рисунке. |
| |
| image::images/new-locally.png[] |
| |
| После инициализации репозитория Git выполняется либо <<add,добавление>> файлов, либо непосредственная <<committing,фиксация>> файлов в репозитории Git. |
| |
| |
| == Клонирование репозитория Git |
| |
| Для получения копии уже существующего репозитория Git необходимо выполнить операцию его клонирования. Прежде чем запустить мастера клонирования репозитория в среде IDE, следует узнать URL-адрес репозитория Git. |
| |
| 1. В главном меню выберите ``Группа`` > ``Git`` > ``Клонировать`` . Отображается мастер клонирования репозитория. |
| |
| [.feature] |
| -- |
| |
| image::images/clone-wizard-small.png[role="left", link="images/clone-wizard.png"] |
| |
| -- |
| |
| |
| . На странице "Репозиторий" укажите путь к местоположению репозитория Git, имя пользователя и пароль (при необходимости эти данные можно сохранить для использования в дальнейшем). |
| . (Не обязательно) Щелкните "Настройка прокси" для отображения диалогового окна "Параметры" и установите настройки сервера прокси. По завершении нажмите кнопку "ОК". |
| . Нажмите кнопку "Далее" для перехода к следующему действию мастера. |
| . На странице "Удаленные ветви" выберите ветви репозитория, которые требуется загрузить (или из которых надо загрузить изменения) в локальный репозиторий. Нажмите кнопку "Далее". |
| . На странице "Целевой каталог" укажите следующие данные. |
| * В поле "Родительский каталог" введите путь к каталогу на жестком диске, выбранному для размещения клонированного репозитория (или нажмите кнопку "Обзор" и выберите требуемый каталог). |
| В поле "Родительский каталог" выводится путь к каталогу по умолчанию ``NetBeansProjects`` , в котором хранятся все проекты NetBeans. |
| * В поле "Имя клона" введите имя локальной папки, в которой требуется создать клон исходного проекта. |
| По умолчанию в поле "Имя клона" выводится имя текущего репозитория Git. |
| * В поле "Извлечение ветви" выберите ветвь, которую требуется извлечь в рабочее дерево. |
| * В поле "Удаленное имя" введите имя исходного клонируемого репозитория. |
| По умолчанию для клонируемого репозитория используется псевдоним ``origin`` . Рекомендуется использовать это значение. |
| * Оставьте установленным флажок "Поиск проектов Netbeans после клонирования", чтобы поиск проектов выполнялся непосредственно после окончания клонирования. (Этот подключаемый модуль выполняет поиск проектов NetBeans в клонированных ресурсах и предлагает открыть обнаруженные проекты.) |
| |
| |
| . Нажмите кнопку "Завершить". |
| По завершении клонирования репозитория Git создается папка ``.git`` с метаданными в папке, выбранной на соответствующем шаге мастера. |
| |
| |
| === Клонирование репозитория Git из GitHub с использованием протокола SSH |
| |
| Для клонирования репозитория Git из GitHub с использованием протокола SSH выполните следующие действия. |
| |
| NOTE: Требуется учетная запись GitHub и пользователь должен быть и быть участником проекта для того, чтобы клонировать через SSH. |
| |
| . В главном меню выберите ``Группа`` > ``Git`` > ``Клонировать`` . Отображается мастер клонирования репозитория. |
| . На странице "Удаленный репозиторий" мастера клонирования репозиториев укажите путь к требуемому репозиторию в поле "URL-адрес репозитория", например ``git@github.com:tstupka/koliba.git`` . |
| . Убедитесь, что в текстовом поле "Имя пользователя" указано ``git`` . |
| . Выберите вариант ключа — закрытый или открытый. |
| . (*Пропустите этот шаг, если для автоматического доступа к серверу Git по протоколу SSH используется агент SSH или Pageant.*) Для получения доступа к серверу Git с помощью закрытого ключа SSH и парольной фразы выполните следующие действия: |
| ... Укажите путь к файлу ключей, например ``C:\Users\key`` . |
| |
| NOTE: Требуется формат закрытого ключа OpenSSH. Ключи, созданные PuTTYgen для Microsoft Windows, должны быть преобразованы в формат OpenSSH перед использованием их в IDE. |
| |
| .. Введите парольную фразу для файла ключей, например ``abcd`` . |
| .. (Не обязательно) Если требуется, установите флажок "Сохранить парольную фразу". |
| . (*Применимо, если для автоматического доступа к серверу Git по протоколу SSH используется агент SSH или Pageant.*) Чтобы получить аутентифицированный доступ к серверу Git из IDE с помощью правильно настроенного агента SSH или Pageant, оставьте поля "Файл закрытого ключа" и "Парольная фраза" пустыми. |
| . (Не обязательно) Щелкните "Настройка прокси" для отображения диалогового окна "Параметры" и установите настройки сервера прокси. По завершении нажмите кнопку "ОК". |
| |
| [.feature] |
| -- |
| |
| image::images/github-repo-small.png[role="left", link="images/github-repo.png"] |
| |
| -- |
| |
| |
| . Нажмите кнопку "Далее". |
| . На странице "Удаленные ветви" выберите ветвь(и) репозитория, которую(ые) требуется загрузить (или из которых надо загрузить изменения) в локальный репозиторий, например ``master`` . |
| |
| [.feature] |
| -- |
| |
| image::images/github-branches-small.png[role="left", link="images/github-branches.png"] |
| |
| -- |
| |
| |
| . Нажмите кнопку "Далее". |
| . На странице "Целевой каталог" укажите следующие данные. |
| * В поле "Родительский каталог" введите путь к каталогу на жестком диске, выбранному для размещения клонированного репозитория (или нажмите кнопку "Обзор" и выберите требуемый каталог). |
| В поле "Родительский каталог" выводится путь к каталогу по умолчанию ``NetBeansProjects`` , в котором хранятся все проекты NetBeans. |
| * В поле "Имя клона" введите имя локальной папки, в которой требуется создать клон исходного проекта. |
| По умолчанию в поле "Имя клона" выводится имя текущего репозитория Git. |
| * В поле "Извлечение ветви" выберите ветвь, которую требуется извлечь в рабочее дерево. |
| * В поле "Удаленное имя" введите имя исходного клонируемого репозитория. |
| По умолчанию для клонируемого репозитория используется псевдоним ``origin`` . Рекомендуется использовать это значение. |
| * Оставьте установленным флажок "Поиск проектов Netbeans после клонирования", чтобы поиск проектов выполнялся непосредственно после окончания клонирования. (Этот подключаемый модуль выполняет поиск проектов NetBeans в клонированных ресурсах и предлагает открыть обнаруженные проекты.) |
| |
| [.feature] |
| -- |
| |
| image::images/github-destination-small.png[role="left", link="images/github-destination.png"] |
| |
| -- |
| |
| |
| . Нажмите кнопку "Завершить". |
| По завершении клонирования репозитория отображается сообщение "Клонирование завершено". |
| |
| image::images/clone-completed.png[] |
| |
| |
| . Выберите требуемый параметр. |
| |
| |
| == Добавление файлов в репозиторий Git |
| |
| Для запуска отслеживания нового файла, а также для помещения на подготовку изменений файла, уже отслеживаемого в репозитории Git, необходимо его добавить в репозиторий. |
| |
| При добавлении файлов в репозиторий Git в среде IDE сначала формируются и сохраняются в индексе моментальные снимки проекта. После выполнения фиксации среда IDE сохраняет эти моментальные снимки в HEAD. Среда IDE дает возможность выбрать одну из последовательностей действий, описанных в следующей таблице. |
| |
| |=== |
| |Описание последовательности действий |Явным образом добавьте новые или измененные файлы в индекс, после чего выполните фиксацию в HEAD только тех файлов, которые помещены в индекс для подготовки. |Пропустите добавление новых или измененных файлов в индекс и выполните фиксацию требуемых файлов непосредственно в HEAD. |
| |
| |Шаги по выполнению выбранной последовательности действий | |
| |
| 1. В окне 'Проекты' щелкните правой кнопкой мыши файл, который необходимо добавить. |
| 2. В контекстном меню выберите ``Git`` > ``Добавить`` . Содержимое файла добавляется в индекс перед выполнением фиксации. |
| 3. В окне 'Проекты' щелкните правой кнопкой мыши файл, который необходимо зафиксировать. |
| 4. В диалоговом окне 'Фикировать' выберите кнопку переключения взаимных изменений между HEAD и индексом ( image:images/changes-head-index.png[] ). Отобразится список файлов, уже помещенных на подготовку. |
| 5. Выполните фиксацию файлов, как описано ниже в разделе <<committing,Фиксация исходных кодов в репозитории>>. |
| | |
| |
| 1. В окне 'Проекты' щелкните правой кнопкой мыши файл, который необходимо зафиксировать. |
| 2. В контекстном меню выберите ``Git`` > ``Зафиксировать`` . |
| 3. В диалоговом окне 'Фикировать' выберите кнопку переключения 'Выбрать изменения' для взаимных изменений между индексом и рабочим деревом ( image:images/changes-head-wt.png[] ). |
| Отобразится список файлов, еще не помещенных на подготовку. |
| |
| [start=4] |
| . Выполните фиксацию файлов, как описано ниже в разделе <<committing,Фиксация исходных кодов в репозитории>>. |
| |
| |=== |
| |
| NOTE: <<viewFileStatus,Состояние>> файла в HEAD отображается зеленым цветом слева от косой черты, как показано на следующем рисунке. |
| |
| image::images/new.png[] |
| |
| Это действие выполняется рекурсивно при вызове в папках при соблюдении структуры содержимого неструктурированных файлов IDE NetBeans. |
| |
| |
| == Редактирование файлов |
| |
| После открытия в среде IDE проекта с контролем версий посредством системы Git, можно приступать к внесению изменений в исходные коды. Аналогично любому проекту, открытому в IDE NetBeans, можно открывать файлы в редакторе исходного кода двойным щелчком на их узлы при их отображении в окнах IDE (пример: проекты (Ctrl-1), файлы (Ctrl-2), Избранное (Ctrl-3)). |
| |
| При работе с исходными файлами в среде IDE пользователь получает доступ к различным компонентам пользовательского интерфейса, облегчающими просмотр и использование следующих команд контроля версий. |
| |
| * <<viewChanges,Просмотр изменений в редакторе исходного кода>> |
| * <<viewFileStatus,Просмотр информации о состоянии файла>> |
| * <<revert,Откат изменений>> |
| |
| |
| === Просмотр изменений в редакторе исходного кода |
| |
| Если файл с контролем версий открыт в среде IDE в редакторе исходного кода, то при внесении в файл изменений можно в режиме реального времени сравнивать файл с его основной версией, находящейся в репозитории Git. В процессе работы в среде IDE используется цветовое выделение на полях редактора исходного кода. Различные цвета соответствуют следующей информации. |
| |
| |=== |
| |*Синий* ( ) |Обозначает строки, измененные по сравнению с более ранней версией. |
| |
| |*Зеленый* ( ) |Обозначает строки, добавленные к более ранней версии. |
| |
| |*Красный* ( ) |Обозначает строки, удаленные по сравнению с более ранней версией. |
| |=== |
| |
| В левом поле редактора исходного кода отображаются изменения для каждой отдельной строки. При изменении определенной строки изменения немедленно показываются в левом поле. |
| |
| image::images/left-margin.png[] |
| |
| NOTE: Можно щелкнуть группировку цветов на полях для вызова команд управления версиями. Например, ниже на рисунке показаны элементы оформления, доступ к которым можно получить, щелкнув красный значок, который указывает на то, что соответствующие строки были удалены из локальной копии. |
| |
| image::images/left-widgets.png[] |
| |
| На правом поле редактора исходного кода предоставлен обзор изменений, внесенных в файл в целом, сверху донизу. Цветовое выделение отображается незамедлительно после внесения изменений в файл. |
| |
| image::images/right-margin.png[] |
| |
| NOTE: Щелкнув некоторую точку в пределах поля, можно незамедлительно перевести внутристрочный курсор в соответствующее местоположение в файле. Для просмотра числа затронутых строк наведите мышь на цветные значки в правом поле: |
| |
| image::images/right-lines-number.png[] |
| |
| |
| === Просмотр информации о состоянии файла |
| |
| При работе в представлениях "Проекты" (Ctrl-1), "Файлы" (Ctrl-2), "Избранное" (Ctrl-3), или "Контроль версий", среда IDE предоставляет несколько функций визуализации, облегчающих просмотр информации о состоянии файлов. В примере, приведенном ниже, обратите внимание, как метка (например, image:images/blue-badge.png[])цвет имени файла и смежная метка состояния соответствуют друг другу для предоставления для пользователей простого и эффективного способа отслеживания данных об изменениях версий файлов: |
| |
| image::images/file-status.png[] |
| |
| Все эти компоненты — метки, цветовое выделение, ярлыки состояния файлов и средство Git для просмотра различий (Git Diff Viewer — возможно, наиболее важный компонент) — вместе обеспечивают возможность эффективного просмотра информации о версиях и управления этой информацией в среде IDE. |
| |
| * <<badges,Метки и условные цвета>> |
| * <<fileStatus,Ярлыки состояния файлов>> |
| * <<versioningView,Представление Git "Контроль версий">> |
| |
| |
| ==== Метки и условные цвета |
| |
| Метки относятся к узлам проектов, папок и пакетов. Они сообщают о состоянии файлов внутри соответствующего узла: |
| |
| Ниже в таблице приведена цветовая схема, используемая для меток. |
| |
| |=== |
| |Элемент пользовательского интерфейса |Описание |
| |
| |*Синяя метка* (image:images/blue-badge.png[]) |Указывает на присутствие в рабочем дереве файлов, которые были изменены, добавлены или удалены. Касательно пакетов, данная метка относится только к самому пакету, но не к его подпакетам. Что касается проектов и папок, метка указывает на изменения как внутри самого элемента, так и внутри любых его подпапок. |
| |
| |*Красная метка* (image:images/red-badge.png[]) |Отмечает проекты, папки или пакеты, содержащие _конфликтующие_ файлы. Касательно пакетов, данная метка относится только к самому пакету, но не к его подпакетам. Для проектов и папок метка обозначает конфликты этого элемента и всех содержащихся подпапок. |
| |=== |
| |
| Цветовое обозначение применяется к именам файлов для обозначения их текущего состояния по сравнению с репозиторием: |
| |
| |=== |
| |Цвет |Пример |Описание |
| |
| |*Без специального цвета (черный)* |image:images/black-text.png[] |Указывает на отсутствие изменений в файле. |
| |
| |*Синий* |image:images/blue-text.png[] |Обозначает локально измененный файл. |
| |
| |*Зеленый* |image:images/green-text.png[] |Обозначает локально добавленный файл. |
| |
| |*Красный* |image:images/red-text.png[] |Указывает на то, что файл вовлечен в конфликт слияния. |
| |
| |*Серый* |image:images/gray-text.png[] |Указывает на то, что файл игнорируется системой Git и не будет включен в команды контроля версий (например, "Обновить" и "Зафиксировать"). Файлы, стоящие под контролем версий, игнорировать невозможно. |
| |=== |
| |
| |
| ==== Ярлыки состояния файлов |
| |
| В среде IDE отображаются следующие два возможных состояния файла. |
| |
| * Состояние, описывающее различия между состоянием файлов в рабочем дереве и в индексе. |
| * Состояние, описывающее различия между состоянием файлов в индексе и текущей фиксацией в HEAD. |
| |
| Ярлыки состояния файлов предоставляют текстовое описание состояния файлов с контролем версий в окнах среды IDE. |
| |
| |=== |
| |Ярлык состояния |Значение |
| |
| |*-* |Неизмененный |
| |
| |*Ответ* |Добавлено |
| |
| |*U* |Обновленный, но не подвергавшийся слиянию |
| |
| |*M* |Изменено |
| |
| |*D* |Удален |
| |
| |*I* |Игнорируется |
| |
| |*R* |Переименовано |
| |=== |
| |
| По умолчанию в окнах среды IDE состояние (новый, измененный, игнорируется и т.п.) и информация о папке отображаются в сером цвете справа от файлов, представленных в виде списка. |
| |
| image::images/file-labels.png[] |
| |
| Файлы, вовлеченные в конфликт слияния, характеризуются как не подвергавшиеся слиянию — как правило, это отмечается красным цветом до тех пор, пока конфликт файлов не будет разрешен в результате явного действия пользователя. Ярлык состояния файлов, не подвергавшихся слиянию, зависит от конкретной ситуации (например, ``A/A`` - не подвергавшиеся слиянию, оба добавлены). |
| |
| Можно включить или отключить отображение ярлыков состояний файлов, выбрав ``Вид`` > ``Показать ярлыки контроля версий`` в главном меню. |
| |
| |
| ==== Представление Git "Контроль версий" |
| |
| Представление Git "Контроль версий" дает возможность просматривать в режиме реального времени список всех изменений, внесенных в файлы конкретной папки локального рабочего дерева. По умолчанию оно открывается в нижней панели среды IDE, и в нем перечислены добавленные, удаленные и измененные файлы. |
| |
| Чтобы открыть представление "Контроль версий", выберите папку или файл, находящиеся под управлением системы контроля версий (например, в окне "Проекты", "Файлы" или "Избранное"). Затем выберите ``Git`` > ``Показать изменения`` в контекстном меню или ``Группа`` > ``Показать изменения`` в главном меню. В нижней панели среды IDE откроется следующее окно: |
| |
| [.feature] |
| -- |
| |
| image::images/versioning-view-small.png[role="left", link="images/versioning-view.png"] |
| |
| -- |
| |
| По умолчанию в представлении "Контроль версий" отображается список всех измененных файлов, содержащихся в выбранном пакете или папке рабочего дерева. С помощью кнопок панели инструментов можно выбрать для отображения список файлов, для которых имеются различия между индексом и HEAD, рабочим деревом и индексом или рабочим деревом и HEAD. Также можно щелкнуть заголовки столбцов над перечисленными файлами, чтобы отсортировать их по имени, состоянию или местоположению. |
| |
| Панель инструментов представления "Контроль версий" содержит также кнопки, позволяющие вызывать стандартные задачи для всех файлов, отображенных в списке. В следующей таблице приведены команды Git, которые можно вызвать с панели инструментов представления "Контроль версий". |
| |
| |=== |
| |Значок |Имя |Функция |
| |
| |image:images/changes-head-wt.png[] |*Взаимные изменения в HEAD и рабочем дереве* |Отображается список файлов, уже помещенных на подготовку, или только измененных/созданных, но еще не помещенных на подготовку. |
| |
| |image:images/changes-head-index.png[] |*Взаимные изменения в HEAD и указателе* |Отображается список файлов, помещенных на подготовку. |
| |
| |image:images/changes-index-wt.png[] |*Взаимные изменения в индексе и рабочем дереве* |Отображаются файлы, у которых есть различия между состоянием версии, помещенной на подготовку, и состоянием в рабочем дереве. |
| |
| |image:images/refresh.png[] |*Обновить состояния* |Обновление состояния всех выбранных файлов и папок. При обновлении файлов, отображенных в представлении "Контроль версий", отражаются все изменения, которые могли быть сделаны извне. |
| |
| |image:images/open-diff.png[] |*Открыть окно с различиями* |Открытие представления различий, предоставляющее параллельное сравнение локальных копий и версий в репозитории. |
| |
| |image:images/update.png[] |*Откат изменений* |Отображается диалоговое окно <<revertdialog,Откат изменений>> . |
| |
| |image:images/commit-button.png[] |*Фиксация изменений* |Отображается диалоговое окно <<commitdialog,Зафиксировать>>. |
| |=== |
| |
| Для доступа к другим командам Git в представлении контроля версий необходимо выбрать строку таблицы, соответствующую измененному файлу, а затем выбрать команду в контекстом меню: |
| |
| [.feature] |
| -- |
| |
| image::images/versioning-right-click-small.png[role="left", link="images/versioning-right-click.png"] |
| |
| -- |
| |
| |
| === Сравнение редакций файлов |
| |
| Сравнение версий файлов – обычная задача при работе над проектами под контролем версий. В среде IDE сравнение редакций выполняется с помощью команды Diff. |
| |
| NOTE: В IDE доступно несколько моделей сравнения - "Различия с последней ревизией", "Различия с контролируемыми ревизиями" и "Различия с". |
| |
| 1. Выберите файл или папку с контролем версий (например, в окне ``Проекты`` , ``Файлы`` или ``Избранное`` ). |
| 2. В главном меню выберите ``Группа`` > ``Различия`` > ``Различия с последней ревизией`` . |
| В главном окне среды IDE открывается окно графического представления различий для выбранных файлов и редакций. В средстве просмотра различий отображаются две копии на параллельных панелях. Более новая копия отображается справа, поэтому, если выполняется сравнение редакции из репозитория с рабочим деревом, рабочее дерево отображается на правой панели. |
| |
| [.feature] |
| -- |
| |
| image::images/diff-viewer-small.png[role="left", link="images/diff-viewer.png"] |
| |
| -- |
| |
| В программе просмотра различий используется такое же <<color-coding-table,цветовое выделение>>, которое используется для отображения изменений другими компонентами системы контроля версий. На снимке экрана выше зеленый блок обозначает содержание, добавленное к последней редакции. Красный блок указывает, что содержание из ранней редакции было позднее удалено. Синий указывает, что в выделенных строках произошли изменения. |
| |
| NOTE: Другие ревизии можно выбрать в списках ``Различия`` и ``с`` под панелью инструментов "Просмотр различий". |
| |
| Панель инструментов программы просмотра различий содержит также кнопки, позволяющие вызывать стандартные задачи Git для всех файлов, отображенных в списке. В следующей таблице приведены команды Git, которые можно вызвать с панели инструментов программы просмотра различий. |
| |
| |=== |
| |Значок |Имя |Функция |
| |
| |image:images/changes-head-wt.png[] |*Взаимные изменения в HEAD и рабочем дереве* |Отображается список файлов, уже помещенных на подготовку, или только измененных/созданных, но еще не помещенных на подготовку. |
| |
| |image:images/changes-head-index.png[] |*Взаимные изменения в HEAD и указателе* |Отображается список файлов, помещенных на подготовку. |
| |
| |image:images/changes-index-wt.png[] |*Взаимные изменения в индексе и рабочем дереве* |Отображаются файлы, у которых есть различия между состоянием версии, помещенной на подготовку, и состоянием в рабочем дереве. |
| |
| |image:images/nextdiff.png[] |*Перейти к следующему отличию* |Отображается следующее отличие в файле. |
| |
| |image:images/prevdiff.png[] |*Перейти к предыдущему отличию* |Отображается предыдущее отличие в файле. |
| |
| |image:images/refresh.png[] |*Обновить состояния* |Обновление состояния всех выбранных файлов и папок. Файлы, отображаемые в окне контроля версий, можно обновить для отражения любых изменений, внесенных извне. |
| |
| |image:images/update.png[] |*Откат изменений* |Отображается диалоговое окно <<revertdialog,Откат изменений>> . |
| |
| |image:images/commit-button.png[] |*Фиксация изменений* |Отображается диалоговое окно <<commitdialog,Зафиксировать>>. |
| |=== |
| |
| Если выполняется просмотр различий для локальной копии в рабочем дереве, среда IDE дает возможность внести изменения непосредственно из программы просмотра различий. Чтобы сделать это, поместите свой курсор внутри правой панели просмотра различий и измените свой файл соответственно, либо используйте значки, отображающиеся в строке рядом с каждым выделенным изменением: |
| |
| |=== |
| |Значок |Имя |Функция |
| |
| |image:images/insert.png[] |*Заменить* |Выделенный текст вставляется в копию из рабочего дерева. |
| |
| |image:images/arrow.png[] |*Переместить все* |Выполняется откат всей локальной копии из рабочего дерева. |
| |
| |image:images/remove.png[] |*Удалить * |Выделенный текст удаляется из локальной копии в рабочем дереве. |
| |=== |
| |
| |
| === Откат изменений |
| |
| Для отсеивания локальных изменений, внесенных в выбранные файлы из рабочего дерева, и замены этих файлов файлами из индекса или HEAD выполните следующие действия. |
| |
| 1. Выберите файл или папку с контролем версий (например, в окне ``Проекты`` , ``Файлы`` или ``Избранное`` ). |
| 2. В главном меню выберите ``Группа`` > ``Откатить изменения`` . |
| Откроется диалоговое окно |
| ``Откат изменений`` . |
| |
| image::images/revert.png[] |
| |
| |
| . Укажите дополнительные параметры (например, ``Откатить в индексе только изменения, незафиксированные в HEAD`` ) . |
| . Щелкните "Откатить". |
| |
| Среда IDE заменяет выбранные файлы теми, которые указаны выше в <<three,шаге 3>>. |
| |
| |
| == Фиксация исходных файлов в репозитории |
| |
| Для фиксации файлов в репозитории Git выполните следующие действия. |
| |
| 1. В окне ``Проекты`` щелкните правой кнопкой мыши файлы, которые необходимо фиксировать. |
| 2. В контекстном меню выберите ``Git`` > ``Зафиксировать`` . |
| |
| Открывается диалоговое окно ``Фиксация`` . |
| |
| [.feature] |
| -- |
| |
| image::images/commit-small.png[role="left", link="images/commit.png"] |
| |
| -- |
| |
| Диалоговое окно ``Фиксация`` состоит из следующих компонентов. |
| |
| * Текстовая область ``Сообщение о фиксации`` предназначена для описания фиксируемого изменения. |
| * Раскрывающиеся списки ``Автор`` и ``Исполнитель`` , которые в случае необходимости позволяют выяснить, кто внес изменение и кто физически выполнил фиксацию файла. |
| * Раздел ``Файлы для фиксации`` , в котором перечислены следующие файлы: |
| * все измененные файлы; |
| * все файлы, которые были удалены из рабочего дерева (локально); |
| * все новые файлы (т.е. файлы, еще не представленные в репозитории Git); |
| * все файлы, которые были переименованы. |
| |
| Здесь же имеются две кнопки-переключателя, осуществляющие переключение на режим, в котором следует выполнить фиксацию. |
| |
| |=== |
| |Элемент пользовательского интерфейса |Имя |Описание |
| |
| |image:images/changes-head-index.png[] |*Взаимные изменения в HEAD и указателе* |Отображается список файлов, помещенных на подготовку. |
| |
| |image:images/changes-head-wt.png[] |*Взаимные изменения в HEAD и рабочем дереве* |Отображается список файлов, уже помещенных на подготовку, или только измененных/созданных, но еще не помещенных на подготовку. |
| |=== |
| |
| NOTE: Чтобы указать здесь, следует ли исключать отдельные файлы из фиксации, либо снимите флажок в первом столбце с именем ``Фиксация`` или щелкните правой кнопкой мыши строку файла в столбце ``Действие фиксации`` и выберите ``Исключить из фиксации`` во всплывающем меню. Для отображения средства просмотра различий щелкните правой кнопкой мыши строку файла в столбце ``Действие фиксации`` и выберите ``Различия`` во всплывающем меню. |
| |
| * Раздел ``Обновить проблему`` предназначен для отслеживания проблем, связанных с фиксируемым изменением. |
| |
| NOTE: Для запуска в среде IDE режима отслеживания проблем требуется установить подключаемый модуль для JIRA или Subversion. |
| |
| |
| . Введите сообщение о фиксации в текстовую область ``Сообщение о фиксации`` . Можно также выполнить любое из следующих действий. |
| * щелкните значок ``Последние сообщения`` ( image:images/recent-msgs.png[] ), расположенный в правом верхнем углу, чтобы просмотреть и выбрать необходимое из ранее использованного списка сообщений. |
| * щелкните значок ``Загрузить шаблон`` ( image:images/msg-template.png[] ), расположенный в правом верхнем углу, чтобы выбрать шаблон сообщения. |
| . Назначив действия для конкретных файлов, щелкните ``Зафиксировать`` . |
| Среда IDE выполнит фиксацию и сохранит моментальные снимки в репозитории. В строке состояния IDE, расположенной в правой нижней части интерфейса, отображается выполнение действия фиксации. После успешного завершения фиксации в окнах ``Проекты`` , ``Файлы`` и ``Избранное`` исчезают метки контроля версий и цветовое выделение фиксируемых файлов. |
| |
| |
| == Работа с ветвями |
| |
| Поскольку среда IDE поддерживает систему Git, появляется возможность использования ветвей для ведения различных версий всей базы кода. |
| |
| При работе с ветвями в среде IDE поддерживаются следующие действия. |
| |
| * <<branchCreate,Создание>> |
| * <<branchCheckOut,Извлечение>> |
| * <<branchMerge,Слияние>> |
| * <<branchDelete,Удаление>> |
| |
| |
| === Создание ветви |
| |
| Чтобы, не оказывая влияния на основную ветвь, работать с отдельной версией своей файловой системы с целью стабилизации или экспериментирования, создайте локальную ветвь, выполнив для этого следующие действия. |
| |
| 1. В окне "Проекты" или "Файлы" выберите из репозитория проект или папку, в которой требуется создать ветвь. |
| 2. В главном меню выберите "Группа > Ветвь/Метка > Создать ветвь". |
| |
| NOTE: Также можно щелкнуть правой кнопкой мыши на проекте или папке, находящимся под управлением системы контроля версий, и выбрать "Git > Ветвь/Метка > Создать ветвь" в раскрывающемся меню. |
| |
| Откроется диалоговое окно "Создать ветвь". |
| |
| [.feature] |
| -- |
| |
| image::images/create-branch-small.png[role="left", link="images/create-branch.png"] |
| |
| -- |
| |
| |
| . В поле "Имя ветви" введите имя создаваемой ветви. |
| . Введите конкретную редакцию выбранного элемента. Для этого введите в поле "Редакция" идентификатор фиксации, существующую ветвь или имя тега, или нажмите кнопку "Выбрать" для просмотра списка редакций, обслуживаемых в репозитории. |
| . (Не обязательно) В диалоговом окне "Выбор редакции" раскройте "Ветви" и выберите требуемую ветвь; укажите идентификатор фиксации в соседнем списке и нажмите кнопку "Выбрать". |
| . В полях "Идентификатор фиксации", "Автор", "Сообщение" просмотрите информацию, относящуюся к редакции, для которой создается ветвь, и щелкните "Создать". |
| Ветвь добавится в папку ``Ветви/Локальные`` репозитория Git. |
| |
| [.feature] |
| -- |
| |
| image::images/branch-added-small.png[role="left", link="images/branch-added.png"] |
| |
| -- |
| |
| |
| === Извлечение |
| |
| Если требуется редактировать файлы в уже существующей ветви, можно извлечь ветвь для создания копий файлов в рабочем дереве. |
| |
| Для извлечения редакции выполните следующие действия. |
| |
| 1. В главном меню выберите "Группа > Извлечь > Извлечь ревизию". |
| Отобразится диалоговое окно "Извлечение выбранной редакции". |
| |
| [.feature] |
| -- |
| |
| image::images/chkout-rev-small.png[role="left", link="images/chkout-rev.png"] |
| |
| -- |
| |
| |
| . Чтобы указать требуемую редакцию, введите в поле "Редакция" идентификатор фиксации, существующую ветвь или имя тега, или же нажмите кнопку "Выбрать" для просмотра списка редакций, обслуживаемых в репозитории. |
| . Пропустите этот шаг, если в предыдущем шаге не нажимали кнопку "Выбрать". В диалоговом окне "Выбор редакции" раскройте "Ветви" и выберите требуемую ветвь. Если требуется, в соседнем списке укажите идентификатор фиксации и нажмите кнопку "Выбрать". |
| |
| NOTE: Если указанный выпуск относится к допустимой фиксации, которая не отмечены именем ветви, HEAD отключается и пользователь бльше не принадлежит ветви. |
| |
| |
| . В полях "Идентификатор фиксации", "Автор", "Сообщение" просмотрите информацию, относящуюся к извлекаемой редакции. |
| . Для создания новой ветви на основе извлеченной редакции выберите параметр "Извлечь в качестве новой ветви" и введите имя поле "Имя ветви". |
| . Для извлечения редакции нажмите кнопку "Извлечь". |
| Файлы в рабочем дереве и в индексе обновляются в соответствии с версией из указанной редакции. |
| |
| NOTE: Если требуется переключить файлы на уже существующую ветвь (например, на фиксацию, которая не находится наверху одной из ветвей), можно использовать команду "Группа > Git > Ветвь > Переключить на ветвь", указать ветвь в диалоговом окне "Переключение на выбранную ветвь", извлечь ее в качестве новой ветви (не обязательно) и нажать кнопку "Переключить". |
| |
| В среде IDE поддерживается контекстно-зависимое извлечение файлов, папок и проектов, выбранных в текущий момент в среде IDE. Для извлечения нескольких файлов (не ветви) из индекса выполните следующие действия. |
| |
| 1. В главном меню выберите "Группа > Извлечь > Извлечь файлы". |
| Отобразится диалоговое окно "Извлечение выбранных путей". |
| |
| [.feature] |
| -- |
| |
| image::images/chkout-path-small.png[role="left", link="images/chkout-path.png"] |
| |
| -- |
| |
| |
| . Выберите вариант "Обновить индекс записями из выбранной редакции". |
| При выборе этого варианта индекс обновляется в соответствии с состоянием из выбранной редакции, прежде чем выполнять свое извлечение. Это означает, что выбранные файлы обновляются как в рабочем дереве, так и в индексе. |
| . Чтобы указать требуемую редакцию, введите в поле "Редакция" идентификатор фиксации, существующую ветвь или имя тега, или же нажмите кнопку "Выбрать" для просмотра списка редакций, обслуживаемых в репозитории. |
| . Пропустите этот шаг, если в предыдущем шаге не нажимали кнопку "Выбрать". В диалоговом окне "Выбор редакции" раскройте "Ветви" и выберите требуемую ветвь. В соседнем списке укажите номер редакции (если требуется) и нажмите кнопку "Выбрать". |
| . Для завершения извлечения нажмите кнопку "Извлечь". |
| |
| |
| === Слияние |
| |
| Для переноса изменений из редакции репозитория в рабочее дерево выполните следующие действия. |
| |
| 1. В главном меню выберите "Группа > Ветвь/Метка > Слить ревизию". |
| Откроется диалоговое окно "Слияние редакции". |
| |
| [.feature] |
| -- |
| |
| image::images/merge-small.png[role="left", link="images/merge.png"] |
| |
| -- |
| |
| |
| . Чтобы указать требуемую редакцию, введите в поле "Редакция" идентификатор фиксации, существующую ветвь или имя тега, или же нажмите кнопку "Выбрать" для просмотра списка редакций, обслуживаемых в репозитории. |
| . Пропустите этот шаг, если в предыдущем шаге не нажимали кнопку "Выбрать". В диалоговом окне "Выбор редакции" раскройте "Ветви" и выберите требуемую ветвь. Если требуется, в соседнем списке укажите идентификатор фиксации и нажмите кнопку "Выбрать". |
| . Нажмите "Слияние". |
| Выполняется трехстороннее слияние текущей ветви, содержимого рабочего дерева и указанной ветви. |
| |
| NOTE: При возникновении конфликта слияния конфликтующий файл помечен с <<badges,красной отметкой>> для указания этого конфликта. |
| |
| NOTE: После слияния небходимо <<committing,зафиксировать>> изменений для их добавления к HEAD. |
| |
| |
| === Удаление ветви |
| |
| Для удаления ненужной локальной ветви выполните следующие шаги. |
| |
| 1. В главном меню выберите "Группа > Обзор репозитория". |
| 2. В браузере репозитория Git выберите ветвь для удаления. |
| |
| NOTE: Ветвь должна быть неактивной, т.е. в настоящее время не изъята в рабочее дерево. |
| |
| |
| . Щелкните выбранную ветвь правой кнопкой мыши и во всплывающем меню выберите "Удалить ветвь". |
| . В диалоговом окне "Удаление ветви" нажмите кнопку "ОК" для подтверждения удаления. |
| Ветвь удаляется из локального репозитория и из браузера репозитория Git. |
| |
| |
| == Работа с удаленными репозиториями |
| |
| При работе совместно с другими разработчиками требуется обмениваться результатами работы. Это сопровождается загрузкой изменений (со слиянием с активной ветвью или без такового) из удаленных репозиториев, размещенных в сети или Интернете, выгрузкой изменений в них и помещением их в эти репозитории. |
| |
| * <<fetch,Загрузка изменений>> |
| * <<pull,Загрузка изменений и слияние с активной веткой>> |
| * <<push,Выгрузка изменений>> |
| |
| |
| === Загрузка изменений |
| |
| В процессе загрузки изменений из исходного удаленного репозитория доставляются те изменения, которых у вас еще нет. При этом никакие локальные ветви никогда не изменяются. В процессе загрузки изменений из удаленных репозиториев доставляются все ветви, которые можно слить с вашей ветвью или просто в любой момент проверить их. |
| |
| Для загрузки обновлений выполните следующие действия. |
| |
| 1. Выберите "Группа > Удаленный > Получить изменения". |
| Отображается мастер загрузки из удаленного репозитория. |
| |
| [.feature] |
| -- |
| |
| image::images/fetch-small.png[role="left", link="images/fetch.png"] |
| |
| -- |
| |
| |
| . На странице мастера "Удаленный репозиторий" выберите репозиторий "Настроенный" (для использования настроенного ранее пути к репозиторию) или вариант "Указать местоположение репозитория Git" (чтобы определить путь к удаленному репозиторию, доступ к которому еще не осуществлялся, его имя, имя для входа, пароль и, если требуется, настройки прокси) и щелкните "Далее". |
| . На странице мастера "Удаленные ветви" выберите ветви для загрузки из них изменений и щелкните "Готово". |
| Создается локальная копия удаленной ветви. Выбранная ветвь обновляется в каталоге ``Ветви`` > ``Удаленная`` в браузере репозитория Git. |
| Далее можно выполнить слияние выбранных обновлений в локальную ветвь. |
| |
| |
| === Загрузка изменений со слиянием с активной ветвью |
| |
| В процессе загрузки изменений со слиянием с активной ветвью обновлений из удаленного репозитория Git в нем осуществляется выборка изменений и выполняется их слияние в локальном HEAD локального репозитория. |
| Для осуществления загрузки изменений со слиянием с активной ветвью выполните следующие действия. |
| |
| 1. Выберите "Группа > Удаленный > Получить и объединить изменения". |
| Отображается мастер принудительной загрузки из удаленного репозитория. |
| |
| [.feature] |
| -- |
| |
| image::images/pull-small.png[role="left", link="images/pull.png"] |
| |
| -- |
| |
| |
| . На странице мастера "Удаленный репозиторий" выберите репозиторий "Настроенный" (для использования настроенного ранее пути к репозиторию) или вариант "Указать местоположение репозитория Git" (чтобы определить путь к удаленному репозиторию, доступ к которому еще не осуществлялся, его имя и, если требуется, имя для входа и пароль) и щелкните "Далее". |
| . На странице мастера "Удаленные ветви" выберите ветви для загрузки из них изменений со слиянием с активной ветвью и нажмите кнопку "Готово". |
| Локальный репозиторий синхронизируется с исходным репозиторием. |
| |
| |
| === Выгрузка изменений |
| |
| Для внесения изменений из локального репозитория Git в общий репозиторий Git выполните следующие действия. |
| |
| 1. Выберите "Группа > Удаленный > Отправить изменения". |
| Открывается мастер выталкивания в удаленный репозиторий. |
| |
| [.feature] |
| -- |
| |
| image::images/push-small.png[role="left", link="images/push.png"] |
| |
| -- |
| |
| |
| . На странице мастера "Удаленный репозиторий" выберите репозиторий "Настроенный" (для использования настроенного ранее пути к репозиторию) или вариант "Указать местоположение репозитория Git" (чтобы определить путь к удаленному репозиторию, доступ к которому еще не осуществлялся, его имя и, если требуется, имя для входа и пароль) и щелкните "Далее". |
| . На странице мастера "Выбор локальных ветвей" выберите ветви, в которые следует выгрузить изменения, и щелкните "Далее". |
| . На странице "Обновление локальных ссылок" выберите ветви, которые требуется обновить в каталоге "Удаленные" локального репозитория, и нажмите кнопку "Готово". |
| Указанная ветвь удаленного репозитория обновляется с использованием последнего состояния локальной ветви. |
| |
| |
| == Заключение |
| |
| В данном учебном курсе показаны основные задачи контроля версий в среде IDE. Описана стандартная последовательность действий при использовании поддерживаемой средой IDE системы контроля версий GIT. Продемонстрирован способ настройки проекта с контролем версий и выполнения основных задач контроля версий файлов. Параллельно с этим дано представление о некоторых компонентах GIT, включенных в среду IDE. |
| |
| link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20Git%20Support%20in%20NetBeans%20IDE[+Отправить отзыв по этому учебному курсу+] |
| |
| |
| |
| == Дополнительные сведения |
| |
| Связанные материалы можно найти в следующих документах: |
| |
| * link:clearcase.html[+Использование поддержки ClearCase в IDE NetBeans+] |
| * link:subversion.html[+Использование поддержки Subversion в IDE NetBeans+] |
| * link:mercurial.html[+Использование поддержки Mercurial в IDE NetBeans+] |
| * link:cvs.html[+Использование поддержки CVS в IDE NetBeans+] |
| * link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234[+Управление версиями приложений в системах контроля версий+] в документе _Разработка приложений в IDE NetBeans_ |