Monday, December 05, 2011

Как быстро настроить Github в Intellij IDEA

Недавно вышел релиз кандидат Intellij IDEA 11. В числе многих украшательств и фишечек JetBrains расширил поддержку популярного вершн контрола Git/Github. Мне очень захотелось попробовать поработать с Git, но помня нашу неудачную с Сашей попытку настроить Github проект из Intellij IDEA, я предварительно вооружился документацией на русском языке после чего начал настраивать Git репозиторий. Здесь я расскажу как у меня это получилось и на какие грабли наступил.

Шаг 1. Установка Git клиента.

Следуем инструкциям по инсталляции с Github. Скачиваю msysgit (версия Windows здесь http://code.google.com/p/msysgit/downloads/list). Дальше все как по картинкам в инструкции.
Затем добавил переменную среды GIT_HOME, которая указывает куда установил Git:


после чего добавил в Path:
Шаг 2. Создаем репозиторий и публичный ключ

У нас уже есть учетная запись на Github, я использую ее и создаю репозиторий под названием "test".
Для того, чтобы сервер Git смог меня аутентифицировать (узнать) мне нужно сгенерировать rsa ключ. Делается это так:
Запускаю Git-bash из контекстного меню Windows Explorer (откуда запустил 0 не важно)
Знакомлю git клиента с параметрами пользователя, которые он будет использовать в поле Author для чего ввожу команды:
Затем генерирую файл ключа:
После того как я ввел пароль мне генератор сказал где лежит файл ключей:
Мне нужен публичный ключ, который находится в ./ssh/id_rsa.pub. Открываю этот файлик и копирую содержимое в буфер обмена (Ctrl+C).

Открываю страничку настроек моего акаунта в Github (Account Settings) и добавляю новый ключ в секции SSH Public Keys:

Все, теперь сервер должен меня узнать.

Шаг 3. Создаем проект и начинам комитить

Открываю скачанную недавно Intellij IDEA 11 RC, кликаю на Check out from Version Control и выбираю Git в выпадающем меню:

в окне Clone Repository ввожу Git Repository URL, Parent directory и Directory name:
Узнать Git Repository URL можно настройках репозитория, но я просто скопировал со страницы с инструктажем по настройке локального репозитория:
После того, как склонировался репозиторий создал проект и добавил в него README.txt файлик. Я готов комититься. Жимаю и выбираю комит с пушем (Commit and Push...) из окошка Commit changes:
Важный момент: окне просмотра Git push IDEA показывает, что master - это не "tracked" бранч. Т.е. он не связан с удаленным репозиторием. Почему так получилось - не понятно, но когда я экспериментировал с другим сервером Git хостинга unfuddle, все заработало сразу. В общем для того, чтобы это "полечить" достаточно выбрать галочку "Push current branch to alternative branch":
Все, мои изменения на сервере. Могу в этом убедиться просмотрев логи:
не верю своему счастью, меняю README.txt и делаю комит в идее (без пуша). После чего меняю еще раз и комичу с пушем:
Master теперь связан с удаленным репозиторием, о чем красноречиво говорит надпись master -> origin/master. Origin - это псевдоним удаленного репозитория. Git дает этот ему этот псевдоним по умолчанию. Это удобно, если работать с несколькими репозиториями одновременно - но это уже совсем другая история :)

Кстати, чуть не забыл проверить дошли ли мои изменения:


Если не работает 

При попытке сделать update выдает ошибку идентификации или просто долго висит

Запусти git-bash и посмотри где он думает находится HOME директория пользователя (команда cd ~, затем pwd). Затем убедись что в этой директории находится папка с ключами .ssh



Добавь переменную окружения HOME, которая указывает на home директорию из git-bash. В моем случае уже были установлены переменные HOMEDRIVE и HOMEPATH, которые указывали на Z:\
Перезапусти IDEA



2 comments:

  1. ничего непонятно
    для переменной PATH какой путь?!

    ReplyDelete
  2. Прекрасно! Теперь не заморачиваюсь с консолью. Все делаю через идею!

    ReplyDelete