# Шпаргалка по Git'у


_git init_ - команда, создающая локальный репозиторий

_git add_ - добавляет фаулк версионность в локальном репозитории 

**НЕ ЗАБЫТЬ:** Сохранить изменения, внесенные в файл (CTRL+S) 

_git commit_ - позволяет зафиксировать изменения и сообщить о появлении новой версии файла

_git status_ - показывает состояние файлов в локальном репозитории, какие файлы изменены, но не добавлены. Вдобавок к этому выводятся подсказки о том, как изменить состояние файлов.

_git log_ - просмотр истории коммитов

_git diff_ - позволяет увидеть разницу между текущей и уже зафиксированной версией файла.

_git checkout master_ - возвращает актуальную версию файла

## Команды для работы с ветками

_git branch_ - выводит информацию о существующих ветках (цветом и звездочкой выделяется текущая)

_git checkout "название ветки"_ - совершает переход в указанную ветку

_git branch -d "название ветки"_ - удаляет указанную ветку

_git merge "название ветки"_ - добавляет информацию из указанной ветки в текущую ветку

## Gitignore

При добавлении больших файлов в проект (например картинок), можно настроить git так, чтобы они не отслеживались в контроле версий. Это делается, чтобы не расходовались лишние ресурсы системы.

## Работа с GitHub

Для совместной работы несколькими пользователями над одним проектом существует сервис Github, с помощью которого осуществляется функционирование системы контроля версий.
Для начала работы необходимо пройти регистрацию и создать аккаунт. В этот аккаунт возможно загрузить любой локальный репозиторий, а также можно создать новый репозиторий непосредственно на портале Github.
Команда _git push_ - доставляет изменения из локального репозитория в удаленный.
Команда _git pull_ - забирает изменения из удаленного репозитория в локальный и делает merge.
Команда _git clone_ - позволяет скопировать удаленный репозиторий в свой локальный (необходимо иметь ссылку, сгенерированную порталом github).
Когда мы хотим присоединиться к чьей-то работе через github, необходимо сделать Fork (такая кнопка появится при заходе на требуемый удаленный репозиторий). После ее нажатия в нашем удаленном репозитории создается точная копия проекта. Все изменения необходимо осуществлять только в отдельной вновь созданной ветке.
Для доставки изменений с отдельной ветки существует удобный параметр команды push: 

     git push --set-upstream origin "имя ветки"

После этой команды изменения будут доставлены в нашу копию проекта на портале github и появится кнопка **Pull request**

Нажав ее мы отправим наши изменения владельцу проекта.

