Git — система контроля версий. GitHub — сайт, предоставляющий Git-хостинг. Он служит заменой Git-сервера, если не хочется разворачивать сервер самостоятельно. Это место, где можно создать удаленный репозиторий и хранить там проект.
Необязательно использовать именно GitHub, помимо него существуют и другие Git-хостинги (например Assembla, Beanstalk). Но нельзя обойтись без системы Git на своем локальном компьютере. Поэтому рассмотрим, как ее установить.
Установка Git на компьютер
Скачать установочный файл последней версии можно здесь, Git можно установить на разные операционные системы, мы будем ставить на Windows.
По умолчанию устанавливается две программы: Git Bash — командная строка и Git GUI — графическая оболочка. Большинство пользуется командной строкой Git Bash. Мы тоже будем работать с Git Bash.
Если Git уже установлен с другим редактором, то сменить редактор по умолчанию можно так:
git config core.editor notepad
После установки Git вы сможете его запустить в нужной папке, щелкнув ее правой кнопкой мыши и выбрав пункт «Git Bash Here» — очень удобная опция, так как не придется переходить в репозиторий из командной строки. То есть щелкать правой кнопкой мыши надо будет папку-репозиторий.
Итак, установили систему Git. Теперь надо создать аккаунт на GitHub и отправить туда свой проект.
Создание аккаунта на GitHub
Тут ничего сложного — понадобится имя пользователя, электронная почта и пароль.
После этого надо создать репозиторий на GitHub (create project). Он будет доступен по адресу:
https://github.com/логин/имя_репозитория
То есть если мы зарегистрируемся с логином javakitt и создадим репозиторий example, то он будет доступен по адресу:
https://github.com/javakitt/example
Теперь есть два варианта:
- Склонировать только что созданный пустой репозиторий себе на компьютер и начать в нем работать, то есть добавлять в него файлы и фиксировать изменения.
- Или наоборот, в том случае, если файлы у вас уже есть: инициализировать в своей рабочей папке репозиторий, а потом отправить его на GitHub.
Оба эти варианты расписаны на сайте — сразу после создания репозитория GitHub выдает страницу с командами, годными для каждого случая.
Мы рассмотрим второй вариант (вдруг у вас уже есть файлы).
Инициализация репозитория в локальной папке
Итак, предположим, что вы уже начали работать над проектом, то есть рабочая папка на локальном компьютере у вас есть.
Чтобы инициализировать репозиторий в рабочей папке, надо открыть в ней Git Bash (правая кнопка мыши, у нас это папка hello) и выполнить команду:
git init
В рабочей папке появится папка .git, что означает, что репозиторий инициализирован. Теперь hello не просто папка проекта, но и git-репозиторий.
Добавление и фиксация изменений
После инициализации репозитория файлы из папки сами не попадут в репозиторий. Пока что статус их — неотслеживаемые, то есть никакого отношения к репозиторию они не имеют, хоть и лежат в папке. Сначала их надо добавить:
git add .
Эта команда добавит все файлы (точка означает все файлы, но можно отдельную папку или файл добавить). Теперь добавленные файлы находятся в состоянии подготовленные. Но это еще не все. Их надо зафиксировать:
git commit -m 'comment'
Эта команда делает снимок репозитория, то есть состояние репозитория, которое хранится в истории и к которому можно впоследствии вернуться. Здесь не указываются конкретные файлы. Просто все подготовленные ранее файлы будут зафиксированы.
Если сразу не указать комментарий в кавычках вслед за параметром —m, то откроется текстовый редактор (тот самый, который мы задали при установке), и в нем надо будет написать комментарий и сохранить.
Вот теперь все, можно отправлять снимок репозитория (мы его только что сделали) в удаленный репозиторий. То есть можно поделиться снимком с другими (или отправить снимок на сервер для себя, чтобы потом можно было его скачать на другой компьютер).
Отправка в удаленный репозиторий
Вернемся теперь к аккаунту на GitHub. Мы создали репозиторий example, и если зайти по адресу https://github.com/javakitt/example и нажать зеленую кнопку Clone, мы увидим, что GitHub предлагает два разных протокола для обмена: https и ssh.
Протоколы HTTPS и SSH
Это не обязательно для начала работы, но чтобы использовать протокол ssh (а не https), в настройках аккаунта надо вставить ssl-ключ. Закрытый ключ хранится у вас на компьютере, а открытый — в аккаунте, логин и пароль при обмене вводить не придется.
Но мы будем сейчас использовать протокол htpps. Тут придется при обмене с сервером вводить имя и пароль, но можно это сделать единожды, а потом брать из хранилища.
Обратите внимание, что при переключении между https и ssh (см. переключатель у кнопки Clone) меняются адреса репозиториев. Наш будет https://github.com/javakitt/example.git. Эти адреса годятся, разумеется, не только для клонирования репозитория, но и для отправки туда изменений.
Также учтите, что можно обмениваться с одним и тем же репозиторием как по протоколу https, так и по ssh. Например, на одном компьютере использовать ssl-ключ, а на другом ввести и запомнить логин-пароль для обмена. Просто псевдонимы будут назначены разным адресам.
Создадим псевдоним
Обычно создают псевдоним origin репозитория:
git remote add origin https://github.com/javakitt/ggg.git
Мы создали псевдоним origin.
Отправим изменения
Теперь можно отправить изменения, пользуясь псевдонимом:
git push -u origin master
Здесь origin — псевдоним репозитория, а master — имя ветки. Так называется по умолчанию основная ветка в Git-репозитории. Как уже говорилось, при записи в репозиторий потребуются учетные данные — откроется окно браузера, в которое нужно ввести имя и пароль учетной записи GitHub. Впоследствии их можно запомнить, чтоб каждый раз не вводить. Запоминаются они так:
git config credential.helper store
Эту команду надо ввести перед push, и тогда логин-пароль будет запрошен единожды.
Все, теперь можно убедиться, что по адресу https://github.com/javakitt/example лежат отправленные файлы.
Теперь любой человек может клонировать репозиторий по кнопке Clone, вносить изменения и отправлять их на GitHub (если мы ему дадим права).