Интегрирование Git™ с MATLAB® предоставляет распределенной системе контроля версий поддержку создания и слияния ответвлений. Git является распределенным инструментом системы контроля версий, таким образом, можно передать изменения в локальном репозитории и позже синхронизироваться с другими удаленными репозиториями.
Git поддерживает распределенную разработку, потому что каждая песочница содержит полный репозиторий. Полная история версии каждого файла сохранена локально. Это позволяет работать оффлайн, потому что вы не должны связываться с удаленными репозиториями для каждого локального редактирования и фиксации, только при продвижении пакетов изменений. Кроме того, можно создать собственные ответвления и фиксировать локальные редактирования. Выполнение так быстро, и вы не должны объединять с другими изменениями на каждой фиксации.
Возможности системы контроля версий Git:
Управление ответвлением
Локальная полная история версии
Локальный доступ, который более быстр, чем удаленный доступ
Оффлайн работа
Отслеживание имен файлов и содержимого отдельно
Осуществление журналов изменений для трассировки отслеживаемости
Интегрирование пакетов изменений, когда готовый
Эти возможности не удовлетворяют каждой ситуации. Если ваш проект не подходит для оффлайновой работы, или ваш репозиторий является слишком большим для полной локальной истории версии, например, Git не является идеальной системой контроля версий. Кроме того, если необходимо осуществить блокировку файлов, прежде чем редактирование, Git не будет иметь этой способности. В той ситуации SVN является лучшим выбором.
Когда вы используете Git в MATLAB, вы можете:
Создайте локальные репозитории Git.
Вытяните и выберите файлы от удаленных репозиториев Git.
Создайте и переключите ответвления.
Объедините ответвления локально.
Фиксируйте локально.
Продвиньте файлы к удаленным репозиториям Git.
Эта схема представляет распределенный рабочий процесс Git.
Если вы хотите использовать Git, чтобы объединить ответвления в MATLAB, необходимо также установить клиент Git командной строки, который доступен в масштабе всей системы. Можно использовать другую функциональность Git без любой дополнительной установки.
Некоторые клиенты не доступны в масштабе всей системы, включая среду mingw32
, обеспеченную GitHub® (Shell Git на Меню "Пуск"). Установка Git командной строки делает его доступным в масштабе всей системы, и затем MATLAB может определить местоположение стандартных ключей ssh
.
Проверьте, доступен ли Git при помощи команды !git
в MATLAB. Если Git не доступен, установите его. После того, как вы установили клиент Git командной строки и зарегистрировали ваши файлы как двоичный файл, можно использовать функции слияния Git в MATLAB.
На Windows®:
Загрузите инсталлятор Git и запустите его. Можно найти Git командной строки в:
В разделе по корректировке вашего PATH
выберите опцию установки, чтобы Использовать Git от Windows Command Prompt. Эта опция добавляет Git к вашей переменной PATH
, так, чтобы MATLAB мог связаться с Git.
В разделе по конфигурированию заканчивающих строку преобразований выберите опцию Контроль как есть, фиксируйте как есть стараться не преобразовывать любые окончания строки в файлах.
Чтобы постараться не повреждать двоичные файлы, перед использованием Git, чтобы объединить ответвления, регистрируют двоичные файлы.
На Linux® Git доступен для большинства дистрибутивов. Установите Git для своего распределения. Например, на Debian®, установите Git путем ввода:
sudo apt-get install git
На Mac, на Индивидуалистах (10.9) или выше, попытка запустить git
от Терминала. Если вам уже не установят Git, он предложит вам устанавливать Инструменты Командной строки XCode. Для большего количества опций смотрите https://git-scm.com/doc
.
При использовании инструменты управления из независимого источника, необходимо указать MATLAB и расширения файла Simulink®, такие как .mlx
, .mat
, .fig
, .mdl
и .slx
как двоичные форматы. Если вы не указываете расширения, эти инструменты могут повредить ваши файлы, когда вы представляете их путем изменения символов конца строки, расширения лексем, замены ключевыми словами или попытки автообъединить. Повреждение может произойти, используете ли вы инструменты системы контроля версий за пределами MATLAB или при попытке представить файлы из MATLAB без первой регистрации ваших форматов файлов.
Также проверьте, что другие расширения файла указаны как двоичный файл, чтобы избежать повреждения при регистрации. Проверка и регистровые файлы, такие как .mdlp
, .slxp
, .sldd
, .p
, файлы MEX, .xlsx
, .jpg
, .pdf
, .docx
, и т.д.
После того, как вы установите клиент Git командной строки, можно препятствовать тому, чтобы Git повредил файлы путем вставки маркеров конфликта. Для этого отредактируйте свой файл .gitattributes
, чтобы зарегистрировать двоичные файлы. Для получения дополнительной информации см.:
Если у вас уже нет файла .gitattributes
в вашей папке песочницы, создайте один в подсказке команды MATLAB:
edit .gitattributes
Добавьте эти строки к файлу .gitattributes
:
*.mlx -crlf -diff -merge *.mat -crlf -diff -merge *.fig -crlf -diff -merge *.p -crlf -diff -merge *.slx -crlf -diff -merge *.mdl -crlf -diff -merge
Проверьте на другие типы файлов, вы используете это, также необходимо указать как двоичный файл, чтобы избежать повреждения при регистрации. Проверьте на файлы, такие как .mdlp
, .slxp
, файлы MEX (.mexa64
, .mexmaci64
, .mexw64
), .xlsx
, .jpg
, .pdf
, .docx
, и т.д. Добавьте строку к файлу атрибутов для каждого типа файла, в котором вы нуждаетесь.
Примеры:
*.mdlp -crlf -diff -merge *.slxp -crlf -diff -merge *.sldd -crlf -diff -merge *.mexa64 -crlf -diff -merge *.mexw64 -crlf -diff -merge *.mexmaci64 -crlf -diff -merge *.xlsx -crlf -diff -merge *.docx -crlf -diff -merge *.pdf -crlf -diff -merge *.jpg -crlf -diff -merge *.png -crlf -diff -merge
Перезапустите MATLAB, таким образом, можно начать использовать клиент Git.
К коду повторного использования от другого репозитория можно задать подмодули Git.
Клонировать внешний репозиторий Git как подмодуль:
Щелкните правой кнопкой по Браузеру текущей папки MATLAB и выберите Source Control> Submodules.
В диалоговом окне Submodules щелкните + кнопка.
В диалоговом окне Add Submodule, в поле Remote, задают местоположение репозитория. Опционально, нажмите Validate.
В поле Path задайте местоположение для подмодуля и нажмите ОК. Диалоговое окно Submodules отображается состояние и детали подмодуля.
Проверьте сообщение о состоянии и нажмите Close.
Когда это необходимо, чтобы управлять добавленным подмодулем, откройте диалоговое окно Submodules.
Чтобы получить последнюю версию подмодуля, в диалоговом окне Submodules, нажимают Fetch.
После выборки необходимо объединить. Проверьте Сообщение о состоянии в диалоговое окно Submodules для получения информации о вашем текущем ответвлении относительно удаленного ответвления отслеживания в репозитории. Когда вы видите сообщение Behind
, необходимо объединить в изменениях от репозитория до локального ответвления.
Нажмите Branches и слияние в изменениях источника в вашем локальном ответвлении с помощью диалогового окна Branches. Смотрите Выборку и Слияние.
Если вы вносите изменения в своем подмодуле и хотите передать изменения обратно в репозиторий:
Выполните локальную фиксацию в родительской папке.
Откройте диалоговое окно Submodules и нажмите Push.
Если вы хотите, чтобы другие пользователи получили ваши изменения в подмодуле, когда они клонируют родительскую папку, убедитесь индекс и главное соответствие.
В диалоговом окне Submodules проверьте индекс и главные значения. Индекс указывает на главную фиксацию в то время, когда вы сначала клонировали подмодуль, или когда вы в последний раз фиксировали родительскую папку. Если индекс и голова не соответствуют, необходимо обновить индекс.
Чтобы обновить индекс, фиксируйте свои изменения в родительской папке, и затем нажмите Push в диалоговом окне Submodules. Это действие делает индекс, и возглавьте то же самое.