Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions MaryLu.md
Original file line number Diff line number Diff line change
@@ -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 <name branch>*. В <> указываем имя ветки, которую необходимо объединить с текущей.

## Удаление веток
Для удаления ветки ввести команду "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*.