Памятка по Git-у

Git-Logo-2Color

В процессе работы мы часто встречаемся с разными микро-задачами. Многие из них встречаются не так часто, чтобы запомнить как они решаются. Поэтому я написал эту памятку по Git-у.

Проблема 1. Установка SSH ключа

В git мы имеем выбор: использовать HTTPS или SSH. Одним из преимуществ использования SSH в том, что нет необходимости каждый раз вводить логин/пароль. При использовании HTTPS так же есть возможность сохранить логин/пароль, но для этого надо устанавливать утилиту.

Шаг 1. Генерация SSH ключа (MacOS или Linux).

Запустите в терминале:

ssh-keygen

У вас должны спросить путь, куда необходимо сохранить сгенерированные ключи. Для использования стандартного пути (/Users/username/.ssh/id_rsa) просто нажмите enter.

Если появится предупреждение, что приватный ключ по данному адресу существует, скорее всего у вас также есть и публичный ключ по адресу: /Users/username/.ssh/id_rsa.pub. Вы можете использовать существующие ключи или перезаписать их.

Потом вас попросят ввести кодовое слово, которое необходимо будет вводить при каждом использовании приватного ключа. Вы можете не задавать кодовое слово.

В конце вы получите приватный ключ (id_rsa) и публичный ключ (id_rsa.pub). Приватный ключ должен быть сохранен у вас на компьютере. Не передавайте приватный ключ третьим лицам, особенно если ключ без кодового слова. Публичный ключ надо сохранить на Git сервере.

Screen Shot 2017-02-08 at 18.58.47

Шаг 2. Сохранить публичный ключ на Git сервере.

Рассмотрим два Git сервиса из числа популярнейших: Bitbucket и GitHub.

Откройте публичный ключ текстовым редактором. Я предпочитаю vim:

vim /Users/username/.ssh/id_rsa.pub

Просто скопируйте весь текст.

Подставьте скопированный текст в большое текстовое поле в форме по данному пути:

Bitbucket: авторизуйтесь на сайте -> меню в верхном правом углу -> Bitbucket settings -> SSH keys -> Add key.

GitHub:авторизуйтесь на сайте ->меню в верхном правом углу -> SSH and GPG keys -> New SSH key.

Дайте имя ключу и сохраните.

Шаг 3. Использовать SSH, а не HTTPS ссылку.

Теперь вам везде надо использовать SSH. В таком случае ваш приватный ключ будет автоматически задействован в процессе авторизации. Если у вас на компьютере уже есть репозитории, которые работают по HTTPS, вам необходимо сменить remote от HTTPS к SSH.

Зайдите в папку с репозиторием и узнайте текущий адрес:

git remote -v

Смените его на SSH:

git remote set-url origin git@[bitbucket.org|github.com]:[username]/[repository name].git

Когда вы впервые используете SSH ключ на Git сервере, вам будет предложено сохранить адрес Git сервера в known_hosts.

Проблема 2. Начать работу с существующим репозиторием

Выясните SSH ссылку репозитория. Например: git@github.com:Doszhan/AlamofireExample.git

Скопируйте проект на компьютер и начните с ним работать через команду:

git clone git@github.com:Doszhan/AlamofireExample.git

Screen Shot 2017-02-09 at 13.51.56

Проблема 3. Загрузить на Git сервер существующий проект

Вы можете сначало написать начальный код проекта и только потом оформить его как репозиторий:

git init
git add .
git commit -m 'initial'
git remote add origin git@github.com:Doszhan/AlamofireExample.git
git push origin master

Проблема 4. Убираем последний commit

Если вы хотите удалить последний commit рекомендуется убрать изменения последнего commit-а и оформить его как новый commit. Таким образом у коллег не будет проблем с удаленным commit-ом. Но тем не менее, вот как удалить последний коммит =) :

git reset --hard HEAD~1

Эта команда удалит изменения из последнего commit-а и изменит ваши локальные файлы. Если вы уже загрузили последний commit на сервер, то надо удалить его и из Git сервера:

git push origin +HEAD

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Картинка профиля Doszhan Kalibek

Doszhan Kalibek