phpstorm+git+windows

Пришлось немного замарочиться со связкой PHPStorm GIT Windows, не дай Бог придется это когда-нибудь повторить… А если мне (или кому-то еще) придется то инструкция ниже.

Сначала надо с сайта msysgit скачать сам msysgit 🙂 (msysGit-fullinstall-1.8.0-preview20121022.exe)

Устанавливается все просто, в конце остается консоль которую можно смело закрывать.

Теперь расскажем Windows что у него появился GIT (точнее возможность с ним работать)

Правой кнопкой мыши по моему компьютеру

Пункт называется «дополнительные параметры системы»

Далее по кнопочке «Переменные среды…»

В «Системные переменные» ищем переменную «PATH».

Выбираем и нажимаем «Изменить».

Не в коем случае не удаляйте значение!

Дописываем:

;C:\msysgit\msysgit\bin;C:\msysgit\msysgit\mingw\bin

Это если вы не меняли путь установки msysgit, если меняли то и тут поменяйте соответственно.

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

Дальше моя любимая консоль:

Нажимаем WIN+R и в появившемся окне пишем:

cmd

По нажатию Enter в окне консоли делаем так (здесь и далее userName — имя пользователя которое вы указали на вашем GIT, кстати в моем случае это gitlab, для простоты допускаем что имя пользователя Windows такое же. user@mail — Ваш e-mail на том же GIT):

C:\Users\userName>sh
sh-3.1$ cd /c/Users/userName
sh-3.1$ pwd
/c/Users/userName
sh-3.1$ mkdir ./.ssh
sh-3.1$ exit
exit

Просто создали папку для хранения ключей.

Теперь в той же консоли создадим сам ключ (учтите, что passphrase нам еще пригодится, его надо запомнить, и если он здесь не показан то это не значит что его не стоит вводить):

C:\Users\VBox>ssh-keygen -t rsa -C "user@mail"
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): /c/Users/userName/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/VBox/.ssh/id_rsa.
Your public key has been saved in /c/Users/VBox/.ssh/id_rsa.pub.
The key fingerprint is:
e1:dd:be:c6:20:73:be:41:16:42:84:6d:35:b7:fe:bc efim@dejin.pp.ua

Дальше что бы GIT впредь не задавал глупых вопросов укажем:

git config --global user.name "userName"
git config --global user.email "user@mail"

Теперь подвяжем к GIT  сгенерированные файлики:

C:\Users\userName>ssh-agent -s
SSH_AUTH_SOCK=/tmp/ssh-PdKlDa4068/agent.4068; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2180; export SSH_AGENT_PID;
echo Agent pid 2180;

Дальше две строчки которые пишутся на основе строк выше:

C:\Users\userName>set SSH_AUTH_SOCK=/tmp/ssh-PdKlDa4068/agent.4068
C:\Users\userName>set SSH_AGENT_PID=2180
C:\Users\userName>ssh-add "c:\Users\userName\.ssh\id_rsa"
Enter passphrase for c:\Users\userName\.ssh\id_rsa:
Identity added: c:\Users\userName\.ssh\id_rsa (c:\Users\userName\.ssh\id_rsa)

Теперь берем содержимое файла C:\Users\fima\.ssh\id_rsa.pub и несем в gitlab или чем вы там пользуетесь, и где нибудь в профиле пользователя создаете новый ключ:

Теперь расскажем PHPStorm что у нас есть GIT:

File -> Settings (Ctrl+Alt+S) -> Version Control -> VCSs -> Git, в поле «Path to git executable» указываем «C:\msysgit\msysgit\bin\git.exe» -> test

Должно вывести версию GIT, если вывело то советую PHPStorm перезапустить.

Дальше Будем проверять это дело:

Закройте все проекты.

Check out from Version Control -> GIT

И видим вот такое окошко:

Вбив все параметры нажимаем тест, принимаем ключ сервера, и ждем, в текущей версии PHPStorm ждать можно вечно 🙂

Нажимаем Cancel два раза и он наконец то решает спросить у нас тот самый пароль passphrase, а заодно и мастер пароль.

После того как все ввели еще раз пытаемся вытащить проект с сервера, но в этот раз даже успешно 🙂

Запись опубликована в рубрике git, phpStorm, windows. Добавьте в закладки постоянную ссылку.

10 комментариев: phpstorm+git+windows

  1. KabsFantteta говорит:

    Качественный материал спасибо!

  2. Евгений говорит:

    Великолепно! Очень помогли!

  3. Дмитрий говорит:

    В конце, когда спрашивает пароль — отказывается принимать верный. На вебморде авторизуюсь, в шторме нет. в чём может быть дело?

    • Дмитрий говорит:

      Разобрался сам. видимо в новой версии что то подправили и теперь достаточно просто команды ssh-keygen -t rsa -C «user@mail» и никаких больше танцев с бубном. всё хорошо работает

  4. Alex говорит:

    Спасибо Вам большое! Подробно и доступно все «изжевали». Лучше статьи в рунете не нашел по этому вопросу.

  5. zablik говорит:

    Спасибо за метериал!

    userName в git и профиле windows, а также email при создании ключа и в git должны обязательно совпадать?

    Я пытаюсь настроить работы PhpStorm с двумя ключами (для двух аккаунтов на GitHub), пока не очень успешно))

    • admin говорит:

      > userName в git и профиле windows,
      Вообще не обязаны.
      > а также email при создании ключа и в git должны обязательно совпадать?
      Если я не ошибаюсь, то не обязаны.
      Точно так же как и имя ключа. Например:
      ssh-rsa AA…..== ИМЯКЛЮЧА
      это просто смысловая нагрузка что бы не «грохнуть» случайно не тот ключ.
      > Я пытаюсь настроить работы PhpStorm с двумя ключами (для двух аккаунтов на GitHub), пока не очень успешно))
      С интересом почитаю как вам удастся это сделать, не через ….
      Главными в git являются приватный и публичный ключи шифрования, все остальное, по моему, просто «рюшечки» для удобства пользователей.
      Можно попробовать использовать один и тот же набор ключей для обоих аккаунтов.
      Если ключа два, и это никак не исправить, то можно написать, например BAT/SH файл, который будет укладывать в папку с ключами ключи от нужного аккаунта. Но этот маразм я бы оставил на крайний случай.

      • zablik говорит:

        > Можно попробовать использовать один и тот же набор ключей для обоих аккаунтов

        Нельзя, к сожалению! С этого и началась моя головоломка. Когда найду нормальный вариант, отпишусь, постараюсь не забыть 😉

  6. html-верстальщик говорит:

    Уже несколько раз настраивал Git по вашей статье. Отличный мануал!

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

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