diff --git a/MaryLu.md b/MaryLu.md new file mode 100644 index 0000000..ff6d423 --- /dev/null +++ b/MaryLu.md @@ -0,0 +1,70 @@ +# Инструкция для работы с Git и удалёнными репозиториями + +## Что такое Git? +Git - это одна из реализаций распределённых систем контроля версий, имеющая как локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире. +## Создание и работа с репозиторием +Репозиторий Git или репозиторий — это папка, в которую Git отслеживает изменения. На компьютере может быть любое количество репозиториев, каждое из которых хранится в собственной папке. + +Для создания репозитория необходимо выполнить команду *git init* в папке с репозиторием и у Вас создаcтся репозиторий (появится скрытая папка .git). + +## Создание коммитов + +### Добавление изменений в коммит +Для добавления измений в коммит используется команда *git add*. Чтобы использовать команду *git add* напишите *git add <имя файла>*. + +### Просмотр состояния репозитория +Для того, чтобы посмотреть состояние репозитория используется команда *git status*. Для этого необходимо в папке с репозиторием написать *git status*, и Вы увидите были ли изменения в файлах, или их не было. + +### Создание коммитов +Для того, чтобы создать коммит (сохранение) необходимо выполнить команду *git commit*. Выполняется она так: *git commit -m "<сообщение к коммиту>". Все файлы для коммита должны быть ***ДОБАВЛЕНЫ*** и сообщение к коммиту писать ***ОБЯЗАТЕЛЬНО***. + +## Переключение между сохранениями +Для того, чтобы перемещаться между коммитами, используется команда *git checkout*. Используется она в папке с репозиторием следующим образом: *git checkout <номер коммита>*. + +## Проверка разницы между текущим файлом и сохранённым +Если вы хотите узнать, что именно изменилось, воспользуйтесь командой *git diff*. Команда *git diff* покажет добавленные и удаленные строки - то есть все вставки в программу. + +## Журнал изменений +Для того, чтобы посмотреть все сделанные изменения в репозитории, используется команда *git log*. Для этого достаточно выполнить команду *git log* в папке с репозиторием. + +Сокращённая форма записи журнала выводится с помощью команды *git log --oneline*. + +## Работа с ветками в Git + +### Создание ветки + +Для того, чтобы создать ветку, используется команда *git branch*. Делается это следующим образом в папке с репозиторием: *git branch <название новой ветки>*. + +## Слияние веток + +Для того, чтобы добавить ветку в текущую ветку используется команда *git merge *. В <> указываем имя ветки, которую необходимо объединить с текущей. + +## Удаление веток +Для удаления ветки ввести команду "git branch -d 'name branch'". +## Добавление изображения +Чтобы вставить изображение в текст, достаточно написать следующее: *![текст, который будет выводиться, если изображение не загрузится](имя файла, из которогонеобходимо изображение достать)*. Добавляем в рабочую папку изображение. Если в названии файла есть ошибка, то изображение мы не увидим, но вместо него мы увидим текст из квадратных скобок. +## Команда *git ignore* +Если вызвать команду *git status*, можно увидеть, что файл с изображением висит неотслеживаемый, но Git его видит. Чтобы Git не спрашивал про файл с изображением, можно добавить еще один файл. Дать ему специальное, фиксированное название. Назовём файл .gitignore. В созданном файле укажем имя файла, который необходимо игнорировать. Затем добавляем созданный файл командой *git add .gitignore*. Далее выполняем *git commit -m "Добавили gitignore файл"*. +## Работа с "удаленными" репозиториями +Git — это программа, которая устанавливается на компьютер, где локально выполняет указанные вами команды. + +GitHub — это сервис компании Microsoft, который позволяет интегрироваться с программой Git и настроить удалённую работу с вашим репозиторием. +### Git clone +Команда git clone позволяет копировать или клонировать к себе репозитории из интернета. Для этого мы обращаемся к программе Git, указываем параметр clone и после этого даём адрес того репозитория, который надо скачать. Далее в папке, где вызывается команда git clone, появляется новая папка. И уже внутри этой папки будет лежать полная копия указанного нами репозитория. +### Git pull +Эта команда позволяет скачать всё актуальное из нашего удалённого репозитория. Команда очень простая. Мы указываем программу git и параметр pull. Она позволяет получить из интернета актуальное состояние удалённого репозитория и скачать его на наш репозиторий. Обратите внимание, что pull — составная команда. Помимо выкачивания из интернета, она ещё и мержит, то есть сливает, изменения с нашими. Если возникают какие-то конфликты, то окошко будет таким же, как при конфликтах обычного git merge. То есть коменда состоит из двух частей: первая часть скачивает изменения с удалённого репозитория, а вторая — сливает эти изменения с текущим репозиторием. +### Git push +Эта команда позволяет отправить то, что есть на нашем репозитории, на удалённый репозиторий. *Требует авторизации*. Если у нет прав на внесение изменений в репозиторий, Git не позволит это делать. На слайде команда указана в усечённом виде, она так работает, когда всё настроено. Если ещё не до конца всё настроено, Git подскажет, как сделать это правильно. Там будет параметр set upstream origin и прочие параметры, которые потребуется указать, Git расскажет об этом. +### Инструкция по созданию *pull request* +Команда для предложения изменений, запрос на вливание изменений в "удаленный" репозиторий. +1. Делам *fork* понравившегося репозитория. + +Смотрим на понравившийся репозиторий, куда хотим внести свой вклад, и делаем *fork*. В это время на нашем аккаунте возникает полная копия этого репозитория. К ней у нас уже будет свой доступ. + +2. *Клонируем свою* версию репозитория, ту, которая появилась после *fork*. + +3. Создаём *новую ветку* для внесения изменений. Именно в этой ветке *фиксируются* все изменения. + +4. Направляем свою версию на *собственный GitHub-аккаунт*, так как на чужой доступа нет. + +5. На сайте GitHub нажимаем на появившуюся кнопку *pull request*.