Перейти к содержимому
Tags

,

Установка git в Windows (на этот раз подробно)

16/12/2009

Логотип GIT
Судя по всему, многие из посетителей приходят на этот блог в поисках руководства по установке Git в Windows. И, что самое печальное, всё что они находят — куцая страничка со ссылкой на англоязычный скринкаст. Пришло время исправить это недоразумение 🙂

Установка и настройка

Итак, установка git. Сразу оговорюсь что мы будем ставить msysgit, и заодно произведём необходимые действия для подключения к GitHub. Конечно, можно использовать git и в одиночку, для себя — но здесь, как и с играми, в онлайне намного интереснее 🙂

Идём на страницу git, в раздел Download и ищем там msysgit для Windows. Сайт git отправляет нас на Google Code. Берём Full Installer for official Git.

Запускаем, устанавливаем. При установке будет предложено выбрать тип запуска Git:

  • Git bash only: git ставится и вызывается командой контекстного меню «Git bash here»/»Git gui here»
  • Run from the Windows command prompt: Устанавливает Git и прописывает путь к консольной версии в PATH. Команду ‘Git Bash here’ всё равно можно использовать.
  • Run Git and tools from Windows Command Prompt: то же что предыдущий вариант, но дополнительно прописывает в Windows путь к различным Unix-утилитам типа find и sort. Git предупреждает нас что при этом вместо windows-приложений с соответствующими именами будут вызываться unix-аналоги

Я предпочитаю второй вариант, т.к. использую git исключительно из командной строки. Так что это руководство будет по большей части консольным 🙂

Продолжаем установку. В конце git предложит просмотреть файл примечаний к релизу. Собственно, на этом установка заканчивается 🙂 Теперь идём в командную строку (если Вы выбрали этот вариант) и вводим свои данные в git, чтобы он нормально подписывал коммиты.

git config --global user.name "Ваше имя"
$ git config --global user.email "ваш_email@example.com"

Не забудьте подставить своё имя/ник и email 🙂 Параметр --global говорит нам что мы изменяем глобальные настройки. Чтобы изменить настройки только одного репозитория, перейдите в его папку и сделайте то же без --global:

cd my_repo
git config user.name "Ваш ник"
$ git config user.email "другой_email@example.com"

Кстати, создаётся репозиторий командой git init в нужной папке. Всё, git можно пользоваться в локальном режиме 🙂

Давайте теперь что нибудь утянем с Github. Идём туда, делаем поиск или Explore Github, открываем понравившийся проект. Прямо под названием проекта будет Clone URL:

Жмём, копируем команду. Получится примерно что то такое:

git clone git://github.com/quickredfox/jquery-builds.git

Переходим в каталог куда мы хотим положить проект, и выполняем команду. Имейте в виду, git создаст для проекта каталог чтобы его туда положить. То есть, если мы выполним эту команду в D:\Source, проект будет в папке D:\Source\jquery-builds.

Конфигурация для использования GitHub

Чтобы хранить свой проект в GitHub, надо ещё немного покопаться с настройкой 🙂 Нам понадобится пара ключей SSH. Открываем консоль Git bash, всё равно где. В msysgit процесс генерации пары ключей упрощён почти до предела. Делаем:

ssh-keygen -t rsa -C "ваш_email@example.com"

У Вас спросят куда положить ключи (не потеряйте их, лучше выбрать предлагаемое программой место), дважды спросят пароль (passphrase). Пароль должен быть сложным. После этого Вы получите два файла и RSA fingerprint примерно такого вида:

e8:ae:60:8f:38:c2:98:1d:6d:84:60:8c:9e:dd:47:81 tekkub@gmail.com

Теперь идём и регистрируемся на Гитхабе, в бесплатном варианте.

Внимание, бесплатный аккаунт на GitHub — аккаунт для Open-Source проектов. Вы не сможете закрыть свой код, или скрыть его от других. Не используйте его для проприетарного кода и рабочих проектов!

В поле SSH Public Key вставляем содержимое файла id_rsa.pub, или как Вы его там назвали при создании ключей. Если Вы создали ключи в своей папке пользователя, ssh самостоятельно его найдёт. Иначе, надо будет добавить ключи вручную:

ssh-add <путь к файлу ключей>

Завершаем регистрацию. Теперь можно уже проверить что получилось. В простой командной строке подключаемся к серверам github:

ssh github.com

В ответ должно прийти:

Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

Это значит что всё в порядке.

Если Вы видите No supported authentication methods available, значит Git не может найти программу, способную достучаться до сервера Гитхаба. Строка вызова используемой программы хранится в переменной GIT_SSH. Чтобы использовать программу ssh (самый простой способ), надо сделать в командной строке:

set GIT_SSH=ssh

Имейте в виду, после перезагрузки эта переменная вернётся в начальное состояние.

Ссылки по теме

33 комментария
  1. а кто-нибудь знает, как сделать в git под windows, чтобы при pull/push постоянно пароли не вводить?

  2. чтоб постоянно не просил пароль, сделай в домашней директории файлик
    _netrc (для винды) или .netrc (для юниксов)
    с содержимым:
    machine адрес_репозитория
    login твой_логин
    password твой_пароль

    у меня отлично работает =)

  3. Откуда у вас появился ssh-keygen в винде?

  4. D7na permalink

    Только в командной строке, когда подключаемся к серверам github пишем ssh git@github.com

  5. балалайко permalink

    сделал всё как написано, так и не смог скачать, что надо… теперь голова болит…

  6. Andrey permalink

    Добрый день

    ssh-add

    ssh github.com

    Выдал ошибку sh: syntax error near unexpected token ‘newline’

    Что это может быть?

    • Это первая строка выдаёт ошибку или вторая? Попробуйте выполнить их по очереди.

      • Andrey permalink

        Все получилось, включил ssh agent. Как теперь можно закинуть файлы с локальной папки на сервер?

          • Andrey permalink

            Спасибо, у меня вопрос:

            Изначально у меня был один репозиторий в аккаунте на github — spasalon-mvc.git

            Потом я создал еще один — testJavaGit.git

            Набрал в git bash следующие строки:

            cd testJavaGit ( моя локальная папка, тут все нормально )

            git init

            git add .

            git commit -m «initial commit»

            git remote add origin git://github.com:EVOSandru6/spasalon-mvc.git ( тут я перепутал название репозитория !!! )

            git push origin master ( ввел данные от кабинета, вошел )

            git add .

            git commit -m «more changes to index»

            git push origin master

            Как теперь удалить файлы из репозитория «spasalon-mvc.git» и связать папку testJavaGit с репозиторием testJavaGit.git

            Пробовал проделать все действия выше повторно, но только со строкой

            git://github.com:EVOSandru6/testJavaGit .git

            Вместо

            git://github.com:EVOSandru6/spasalon-mvc.git

            Но пишет ругательство remote origin already exist

            Что делать?

            • Удалить репо (и все файлы) можно по моему прямо из аккаунта на Github — заходите там в свой репозиторий, потом Settings и внизу Delete this repository.

              EDIT: А, надо сменить remote. git remote set-url origin правильный_url

              • Andrey permalink

                Спасибо, команда сработала, теперь когда я набираю

                git push origin master , выходит ошибка :

                unable to look up github.com (port EVOSandru6) (Тут в скобках Всякие Крякозябры)

                • Потому что правильно git remote set-url origin git://github.com/EVOSandru6/spasalon-mvc.git

                  • Andrey permalink

                    1)

                    Так в файл конфига прописалось

                    [remote «origin»]
                    url = git://github.com/EVOSandru6/testJavaGit.git
                    fetch = +refs/heads/*:refs/remotes/origin/*

                    Не работает именно git push origin master команда, выходит ошибка.

                    2)

                    И еще вопрос, что делать если файл gitignore отсутствует.

                    Я по книжке дошел до сего места с игнорированием файлов

                    $ cat .gitignore
                    *.[oa]
                    *~

                    В документации смотрел, что вроде это какой то файл, но в .git такого нет. Как правильно задать команды для игнорирования в таком случае или сперва нужно переключиться

                    сd ` какой либо файл/каталог ` (explode нашел, там чиркнуто пару строк
                    # git ls-files —others —exclude-from=.git/info/exclude
                    # Lines that start with ‘#’ are comments.
                    # For a project mostly in C, the following would be a good set of
                    # exclude patterns (uncomment them if you want to use them):
                    # *.[oa]
                    # *~
                    )

  7. Andrey permalink

    Спасибо Мастер!

    Я создал удаленный репозиторий на github

    прописал в gitbush:

    $ git remote add orign git@github.com:EVOSandru6/git-basics.git

    Затем:

    $ git remote -v
    orign git@github.com:EVOSandru6/git-basics.git (fetch)
    orign git@github.com:EVOSandru6/git-basics.git (push)

    Т.е. они вроде как проинициализировались.

    Далее:

    $ git push -u origin master

    Ошибки такие вот:

    fatal: ‘origin’ does not appear to be a git repository
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

    В чем может быть дело?

  8. Алексей permalink

    Как мне установить русифицированную версию?

  9. Такая проблема — установил git по видео , все нормально. Сам git в папку for_the_site на диске d. Загрузил пару файлов, изменил — проверил , все работает. Далее захожу в следующий раз , набираю git status . Он мне показыват, что никакого репозитория нет и показан путь до git — диск c — пользователи- admin- git. Теперь не знаю, как поменять путь опять диск d — for_the_site — git. Кто знает, напишите, пожалуйста media1789@mail.ru
    Юрий.

  10. Serg permalink

    Подскажите пожалуйста. Все установил. «Кстати, создаётся репозиторий командой git init в нужной папке.» — не создается, выходит сообщение команда не найдена.
    https://ibb.co/kbEdYa

Trackbacks & Pingbacks

  1. Пробная установка и использование Git в Windows « Механический мир
  2. Использование Git под Windows | Coding Tips

Ответить на kuroikaze85 Отменить ответ