Настройка Git’а и работа с удаленными репозиториями в Qt Creator под Windows 7

Недавно я столкнулся с небольшой проблемой настройки Git‘а для моей любимой IDE под Windows 7. Git никак не хотел работать с Qt Creator’ом нормально, все время «зависал» сам и «вешал» мне среду разработки. Информации по его настройке для этой IDE в интернете оказалось катастрофически мало. Настолько мало, что у меня даже возникло ощущение того, что будто бы я один столкнулся с этими проблемами и непонятками.

Решение всех этих странных проблем в работе Git’a с Qt Creator’ом оказалось достаточно простым и банальным. Камнем преткновения всех «глюков» являлось подтверждение действий пользователя на каждый его «чих», будь то «Pull» или «Push». Все эти команды требовали авторизации по SSH/HTTPS, которую ну никак не хотел отображать в своей консоли Qt Creator, постоянно «зависая» на 60 секунд при выполнении команд, которые требовали ввода каких-либо данных в консоль.



В конце-концов я решил все основные проблемы работы Git’а с этой средой разработки. Поскольку начинающему разработчику возможно будет трудно разобраться во всех тонкостях настройки, эта статья призвана помочь ему и обучить его базовым принципам работы с Git’ом.

Содержание:

1. Qt Creator, его различные версии и реализация меню Git’а
2. Регистрация в популярных сервисах хранения кода и создание репозитория проекта
2.1. GitHub
2.2. BitBucket
3. Установка и настройка Git-клиента
3.1. Создание SSH-ключа
3.2. Добавление SSH-ключа в сервисы хранения кода
4. Добавление проекта в удаленный репозиторий
5. Настройка Qt Creator для работы с репозиториями проектов

1. Qt Creator, его различные версии и реализация меню Git’а

Я настоятельно рекомендую установить вам последнюю версию Qt Creator’a с официального сайта. В последней (на момент написания статьи) версии 2.7.0, основные команды Git’а разгруппированы в логичные менюшки, что по сравнению с предыдущей версией, где всё было свалено в одну большую кучу, выглядит вполне юзабельно.

Qt Creator 2.7.0:



Qt Creator 2.6.2:



<< Перейти к содержанию

2. Регистрация в популярных сервисах хранения кода и создание репозитория проекта

Итак, начнем. У нас есть установленный Qt Creator последней версии, и теперь нам необходимо зарегистрироваться на каком-нибудь популярном хостинге проектов, который поддерживает систему управления версиями файлов Git. В статье будут описаны процессы регистрации и работы с наиболее популярными сервисами, такими как: GitHub и BitBucket.



Процесс регистрации на этих двух сервисах достаточно тривиален и прост, на мой взгляд, все современные сервисы должны иметь такую простую форму регистрации. Никаких «повторите свой пароль/e-mail», а лишь простая и лаконичная формочка в три строки. Ввел свои данные — и вперед, пользоваться сервисом! Но что-то мы отвлеклись. В форме регистрации на BitBucket и GitHub вам потребуется ввести рабочий e-mail, так как на него придет код для подтверждения регистрации.

<< Перейти к содержанию

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

2.1. GitHub

2.1.1. В верхнем правом углу страницы сайта нажимаем кнопку «Create a new repo».



2.1.2. И просто заполняем необходимые поля!



Небольшая аннотация. Сервис GitHub позволяет вам в процессе создания репозитория инициализировать оный файлом «README.md» и «.gitignore». В файле «README.md» хранится подробное текстовое описание вашего проекта, а в файле «.gitignore» будут описаны расширения и имена файлов, которые не попадут в проект, к примеру это объектные файлы или скомпилированные динамические и статические библиотеки.
Следует заметить, что если вы выберите опцию инициализирования репозитория этими файлами, то впоследствии, перед выполнением команды «Push» (git push), вам необходимо будет сделать «Pull» (git pull), то есть, забрать файлы «.gitignore» и «README.md» в свой проект. Иначе, при выполнении команды «Pull» (git pull) будет появляться ошибка, что репозиторий у нас не пустой.
Еще интересная особенность для тех, кто не хочет делиться своим кодом с сообществом: сервис GitHub на момент написания статьи не позволяет бесплатно создать приватный (то есть видимый только вам) репозиторий, в отличии от BitBucket. Поэтому, выбирайте сервис с учетом ваших потребностей.

2.1.3. После нажатия на клавишу «Create repository» — создастся пустой (или с файлами .gitignore и README.md, если вы их выбрали) репозиторий, в который мы будем добавлять все необходимые файлы для сборки проекта.



<< Перейти к содержанию

2.2. BitBucket

2.2.1. Нажимаем кнопку «Create repository» в верхней части страницы.



2.2.2. Заполняем необходимые поля, здесь все аналогично, в качестве типа репозитория выбираем Git.



2.2.3. Нажимаем синюю кнопку «Create repository», и попадаем в созданный нами, пока еще пустой репозиторий, в который мы можем добавить впоследствии необходимые нам файлы.



<< Перейти к содержанию

3. Установка и настройка Git-клиента

После регистрации на нужном нам сервисе, перейдем непосредственно к установке и настройке самого Git-клиента под Windows 7.

1. Скачиваем клиент с официального сайта, на момент написания статьи, его последняя версия под семейство Windows OS — 1.8.2.3.
Ссылка на загрузку последней версии для Win: http://git-scm.com/download/win

2. Запускаем установочный файл и устанавливаем клиент в любую, удобную вам, папку.
Важно, чтобы в пути к рабочим файлам Git’а не было кириллических символов и, желательно, пробелов. К примеру, у меня папка, в которую установлен Git — «C:/Qt/Git».



3. Установочные настройки выбираем следующие:



Параметр «Use Git Bash only» не модифицирует вашу переменную окружения «PATH», поэтому Git’ом можно воспользоваться лишь через его собственный терминал «Git Bash», который несколько удачнее скупого «cmd.exe», поскольку содержит множество удобных «Unix-like» утилит, например, «grep» или «diff».

При выборе параметра «Checkout as-is, commit as-is», Git не будет изменять что-либо (к примеру, переносы строк) в коде во время commit’а или checkout’а. Для кроссплатформенных приложений рекомендуется выбирать «Checkout Windows-style, commit Unix-style line endings».

4. После того, как Git установится, нам необходимо его настроить, а именно — задать глобальное имя и e-mail. Для этого запускаем «Git Bash» и вводим в терминал следующие команды:



Небольшой совет: для вставки команд непосредственно в окно терминала «Git Bash», необходимо использовать комбинацию клавиш «Shift+Insert», так как популярная комбинация «Ctrl+V», к сожалению, не работает.

<< Перейти к содержанию

3.1. Создание SSH-ключа

Итак, теперь нам необходимо сгенерировать SSH-ключ для доступа к нашим удаленным репозиториям, созданным в сервисах хранения кода.
Для этого вводим в «Git Bash» следующие команды:

Если папка «.ssh» уже существует, сохраните резервную копию её содержимого следующей командой:

Если такой папки нет, выполняем генерацию SSH-ключа командой:

На все вопросы, возникающие при выполнении этой команды, необходимо просто нажимать «Enter», то есть «passphrase» вводить не следует (а следует оставить его пустым), иначе Qt Creator будет «зависать» при запросе пароля.

После того, как мы сгенерировали наш уникальный SSH-ключ, скопируем его в буфер обмена командой:



На этом создание нашего SSH-ключа и настройка Git-клиента завершена.

<< Перейти к содержанию

3.2. Добавление SSH-ключа в сервисы хранения кода

Для добавления сгенерированного нами ключа к аккаунту какого-либо сервиса, необходимо просто вставить его из буфера обмена в форму. К примеру, так добавляется ключ на GitHub’е и BitBucket’е.

GitHub:



1. Выбираем пиктограмму настроек.
2. В списке выбираем «SSH keys».
3. Нажимаем кнопку «Add SSH key».
4. Вводим произвольное имя ключа и вставляем из буфера обмена наш SSH-ключ, затем нажимаем кнопку «Add key».

BitBucket:



Все действия на BitBucket’е для добавления ключа аналогичны таковым в GitHub’е. Для того, чтобы открыть настройки аккуанта, нужно выбрать «Manage account».

<< Перейти к содержанию

Теперь наши аккаунты полностью настроены на работу с локальным Git-клиентом.

4. Добавление проекта в удаленный репозиторий

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

Запускаем «Git Bash» и переходим в директорию с исходным кодом проекта:

Обратите внимание, что диск «C:» примонтирован как «/c/», соответственно диск «D:», если он у вас есть, будет примонтирован как «/d/ и так далее.

Затем, будучи в корневой папке нашего проекта, выполняем следующие команды (комментарии отмечены символом «#»):

P.S. Небольшой совет из этого блога (новичкам обязательно так делать):
Команда

Позволит использовать команды

без указания ветки.

Небольшие пояснения. Для работы в Qt Creator требуется указать именно SSH-доступ в команде «git remote add origin», SSH-ссылку на ваш проект можно получить таким образом:

GitHub:



BitBucket:



Если же работать через «Git Bash», то можно использовать традиционный доступ через HTTPS. Тогда, при выполнении этой команды, у вас спросят пароль и логин, который вы вводили при регистрации на сервисе.

Команду «git pull origin master» следует выполнять, когда у вас репозиторий не пуст, и вам требуется забрать из него файлы. Если при выполнении команды «git push origin master» или «git pull origin master» вас спросят про добавление хоста в файл known_hosts, смело подтверждайте это, введя «yes».

<< Перейти к содержанию

5. Настройка Qt Creator для работы с репозиториями проектов

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

Запускаем Qt Creator и первым делом идем в «Options» -> «Version Control» -> «Git», прописываем там путь до папки, где располагается исполнительный файл «git.exe». Затем ставим галочку на пункте «Set "HOME" environment variable».



Сохраняем настройки и перезапускаем Qt Creator. После перезапуска в меню программы «Tools» появится пункт «Git».

Теперь открываем наш проект, замечаем, что рядом с именем проекта добавилось название его ветки (master). Вносим какие-либо изменения в любой файл или файлы проекта и выполняем команду «Tools» -> «Git» -> «Local Repository» -> «Commit».



Отмечаем необходимые файлы и нажимаем кнопку «Commit». Этой командой мы сохраним изменения в нашем локальном репозитории.

Затем, выполнив «Tools» -> «Git» -> «Remote Repository» -> «Push»



Мы загрузим сделанные нами изменения в удаленный репозиторий.

Помимо этого, Qt Creator поддерживает импорт проектов из репозиториев, использующих Git.



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



Теперь стало очень удобно использовать Qt Creator для работы с Git-репозиториями, править код и отправлять свои коммиты в различные проекты.
Правда, к сожалению, я не смог нормально иницициализировать и залить новый проект на удаленный репозиторий, непосредственно через саму среду разработки. Поэтому я рекомендую заливать его через терминал, как это описано в пункте #4. Возможно этот баг вскоре пофиксят в новой версии Qt Creator’a.

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

<< Перейти к содержанию

Manuals, Others

Комментарии: 8

  1. Большое спасибо! Все просто и понятно! Все работает на последнем Qt3.2.1
    Эх, почему я сразу на вашу инструкцию не наткнулся?

  2. Мануал от ГитБукета https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
    1. если ошиблись с URL репозитария
    git remote -v # показать все пути
    git remote rm origin # удалить все пути

    2. в папке ssh нужно сделать файл config следующего содержания
    Host bitbucket.org
    IdentityFile ~/.ssh/id_rsa

    Протестировать работу ключей
    ssh -Tv git@bitbucket.org или
    ssh -T git@bitbucket.org

    3. Формат URL репозитария
    git@bitbucket.org:accountname/reponame.git
    ssh://git@bitbucket.org/accountname/reponame.git
    https://accountname@bitbucket.org/accountname/reponame.git

  3. Поправка: в командах теперь вместо git.org надо писать — github.com (git.org теперь не работает)
    Автор видимо в какой-то момент забыл что для новичков пишит.
    нет расшифровки команд, не сразу все кидаются читать про команды по ссылке в конце статьи, вот например:
    git remote add origin git@git.org:Nick/repo.git # Устанавливаем связь между локальным и удаленным репозиториями.
    Nick — что это?? repo.git — что это??
    Nick — ваше имя пользователя
    repo.git — здесь «repo» это имя вашего репозитория
    origin — всего лишь краткое имя для (git@git.org:Nick/repo.git), хоть vasiapupkin, и да это не связь устанавливаем, а прозвище (alias) для удалённого репозитария в командах.

    git branch -u origin/master # Установка ветки upstream. — ДЕЛАТЬ ОБЯЗАТЕЛЬНО, это не совет, а требование.

    ЗА остальное большое спасибо автору.

  4. Спасибо за руководство! Отмечу, что до пункта «Настройка Qt Creator …» я так и не дошел. Qt Creator сам всё обнаружил и добавил куда нужно.

    1. Не за что. Хотя статья значительно устарела (написана три года назад), рад что кому-то она ещё оказывается полезной!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *