diff --git a/instruction_2.md b/instruction_2.md new file mode 100644 index 0000000..8e6ae16 --- /dev/null +++ b/instruction_2.md @@ -0,0 +1,77 @@ +# **Инструкция по работе с Git** + +## *Что такое Git и зачем он нужен?* + +**Git** - это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок - полезно для дизайнеров. + +С помощью **Git**-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий. + +Репозиторием называют хранилище вашего кода и историю его изменений. Git работает локально и все ваши репозитории хранятся в определенных папках на жестком диске. + +Так же ваши репозитории можно хранить и в интернете. Обычно для этого используют три сервиса: + +* GitHub +* Bitbucket +* GitLab + +Каждая точка сохранения вашего проекта носит название коммит (*commit*). У каждого commit-a есть *hash* (уникальный id) и комментарий. Из таких *commit*-ов собирается ветка. **Ветка** - это история изменений. У каждой ветки есть свое название. Репозиторий может содержать в себе несколько веток, которые создаются из других веток или вливаются в них. + + + +### **Основные команды Git** + +**git init** - инициализация локального репозитория + +**git status** - получение информации от git о текущем состоянии + +**git add** - добавить файл или файлы к следующему коммиту + +**git commit -m "messege"** - создание коммита + +**git log** - вывод на экран истории всех коммитов с их хеш-кодами + +**git chechout** - переход от одного коммита к другому + +**git checkout master** - вернуться к актуальному состоянию и продолжить работу + +**git diff** - увидеть разницу между текущим файлом и закоммиченным файлом + +**ls** - отображает содержимое репозитория + +**touch name.txt** - создать файл name.txt + +**mkdir name** - создать новую папку name + +**cd name/** - перейти в папку name + +**cd ..** - подняться на уровень выше +**git branch** - посмотреть список веток в репозитории + +**git branch name** - создать новую ветку + +**git checkout name** - переход к другой ветке + +**git branch -d name** - удалить ветку + +**vim name** - редактировать файл + +**git merge name** - слить в текущую ветку + +**git pull** - позволяет скачать все из текущего репозитория и автоматически сделать merge с вашей версией + +**git push** - позволяет отправить свою версию репозитория во внешний репозиторий + +**git request** - команда для предложения изменений, запрос на вливание изменений в репозиторий + +### **Как сделать pull request** + +* Делаем fork репозитория +* Делаем git clone *своей* версии репозитория +* Создаем новую ветку и в нее вносим свои изменения +* Фиксируем изменения (git commit -m "message") +* Отправляем свою версию в свой GitHub +* На сайте GitHub нажимаем pull request + +Не важно, чколько будет попыток. Важен результат. Удачи! + +![Внимание](picture.jpg)