Установка git в Windows (на этот раз подробно)
Судя по всему, многие из посетителей приходят на этот блог в поисках руководства по установке 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
Имейте в виду, после перезагрузки эта переменная вернётся в начальное состояние.
Ссылки по теме
- Руководство к Git (на английском)
- SSH Troubleshooting — при возникновении проблем с SSH
- Похожее руководство на самом GitHub (на английском)
- Работа с Pull requests в Github
- Система деплоя на основе Git / Gitosis
а кто-нибудь знает, как сделать в git под windows, чтобы при pull/push постоянно пароли не вводить?
Добавить ключ в putty, видимо. Это гитхаб имеется в виду?
чтоб постоянно не просил пароль, сделай в домашней директории файлик
_netrc (для винды) или .netrc (для юниксов)
с содержимым:
machine адрес_репозитория
login твой_логин
password твой_пароль
у меня отлично работает =)
Откуда у вас появился ssh-keygen в винде?
Он входит в cygwin и в Putty.
А заодно в cygwin и работающий git входит =)
Ну сейчас вообще проще Github for Windows скачать и не париться 🙂
Только в командной строке, когда подключаемся к серверам github пишем ssh git@github.com
сделал всё как написано, так и не смог скачать, что надо… теперь голова болит…
Добрый день
ssh-add
ssh github.com
Выдал ошибку sh: syntax error near unexpected token ‘newline’
Что это может быть?
Это первая строка выдаёт ошибку или вторая? Попробуйте выполнить их по очереди.
Все получилось, включил ssh agent. Как теперь можно закинуть файлы с локальной папки на сервер?
git push
Спасибо, у меня вопрос:
Изначально у меня был один репозиторий в аккаунте на 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
Спасибо, команда сработала, теперь когда я набираю
git push origin master , выходит ошибка :
unable to look up github.com (port EVOSandru6) (Тут в скобках Всякие Крякозябры)
Потому что правильно
git remote set-url origin git://github.com/EVOSandru6/spasalon-mvc.git
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]
# *~
)
Если .gitignore отсутствует, его надо создать.
в папке .git ?
Нет, в папке проекта.
Спасибо Мастер!
Я создал удаленный репозиторий на 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.
В чем может быть дело?
URL’ы репозиториев неправильные. Между github.com и EVOSandru6 должен быть
/
вместо:
Спасибо большое!
Добрый день!
При вводе git config —global user.name у меня выходит ошибка error: could not lock config file p://.gitconfig: Permission denied. Как можно разрешить доступ?
Через свойства файла, возможно?
допоможіть і мені http://gyazo.com/f04876e321a156174f68abd4f068bd4b
В одной строке orign, в другой origin.
Как мне установить русифицированную версию?
Такая проблема — установил git по видео , все нормально. Сам git в папку for_the_site на диске d. Загрузил пару файлов, изменил — проверил , все работает. Далее захожу в следующий раз , набираю git status . Он мне показыват, что никакого репозитория нет и показан путь до git — диск c — пользователи- admin- git. Теперь не знаю, как поменять путь опять диск d — for_the_site — git. Кто знает, напишите, пожалуйста media1789@mail.ru
Юрий.
Подскажите пожалуйста. Все установил. «Кстати, создаётся репозиторий командой git init в нужной папке.» — не создается, выходит сообщение команда не найдена.
https://ibb.co/kbEdYa