Skip to content
Open
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.png
79 changes: 79 additions & 0 deletions GitInstruction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
![logo](Git-Logo-Black.png)
# Работа с Git и GitHub
## 1. Проверка наличия установленного Git.
В терминале выполнить команду `git version`.
Если Git установлен, появится сообщение с информацией о версии программы. Иначе отобразится сообщение от ошибки.

## 2. Установка Git.
Загружаем последнюю версию Git с [сайта](http://git-scm.com/downloads). Устанавливаем с настройками по умолчанию.

## Настройка Git.
При первом использовании Git необходимо представиться.
Для этого нужно ввести в терминале 2 команды:
```
git config --global user.name "Your name"
git config --global user.email your mail@example.com
```

## 4. Инициализация репозитория.
Для того, чтобы иницилизировать репозиторий, необходимо открыть папку, в которой будут отслеживаться изменения, и в терминале ввести команду `git init`. После этого в отслеживаемой папке появится скрытая папка `.git`.

## 5. Запись изменений в репозиторий.
Для записи изменений в репозитории мы должны сохранить изменения с помощью `ctrl+s` или включить автосохранение путём `File -> Auto Save`. Далее вводим в терминал команду `git add folderName` (для упрощения процесса вводим первые буквы названия папки и нажимаем `TAB`), после создаем коммит командой `git commit -m "message"`.

## 6. Просмотр истории коммитов.
Увидеть историю коммитов можно с помощью команды `git log`, а также других вариаций команды, например таких как `git log --graph`, `git log --oneline` и т.д., для поиска коммитов по разным критериям. Данная команда перечисляет все сделанные коммиты в хронологическом порядке - последние коммиты находятся сверху. Каждому коммиту принадлежит уникальный численно-буквенный код, по которому можно перемещаться между сохранениями. ![Пример1](logExample.png)

## 7. Перемещение между сохранениями.
Для переключения между разными версиями используем команду `git checkout номерКоммита`.
Номер коммита можно найти через комнаду `git log`.

## 8. Игнорирование файлов.
Для того, чтобы исключить файлы или папки из отслеживания в репозитории, необходимо создать файл `.gitignore` и добавить туда названия нужных файлов или папок. Если нужно добавить к игнорированию все файлы одного формата, используем шаблон `*.format_type`.

## 9. Создание веток в Git.
Создать ветку можно командой `git branch <branchName>`.
По умолчанию имя основной ветки в Git - *master*.
Список веток в репозитории можно посмотреть с помощью команды `git branch`.

Существуют альтернативные способы создания веток - `git checkout -b branchName` и `git switch -c branchName`. С помощью этих команд можно создать новую ветку и автоматитечски переключиться на нее.

## 10. Слияние веток и разрешение конфликтов.
Для слияния новой ветки с текущей, нужно выполнить команду `git merge <branchName>`.
Если была изменена одна и та же часть файла в обеих ветках, то может возникнуть конфликт, который потребует участия пользователя. `VSCode` предлагает варианты разрешения конфликтов. Чтобы разрешить конфликт, нужно выбрать один из вариантов, либо объединить содержимое по-своему.
После разрешения конфликта, нужно выполнить коммит слияния.
![conflictResolving](Screenshot 2024-05-15 221426.png)

## 11. Удаление веток
Чтобы удалить ветку, используем команду `git branch -d branchName`.

В случае, когда мы пытаемся удалить неслитую ветку данной командой, возникнет ошибка. Для принудительного удаления используем команду с заглавной буквой **D**.`git branch -D branchName`.

## 12. Работа с удаленными репозиториями.
1. Для начала работы с удаленными репозиториями нужно создать аккаунт на GitHub.
2. Создать локальный репозиторий.
В локальном репозитории создаем папку для внешнего. Открываем терминал внешнего репозитория командой
```
cd FolderName/
```
или кликом правой кнопки мыши открываем контекстное меню и выбираем команду `Open in integrated Terminal`.
3. Создать удаленный репозиторий.
4. Связать удаленный репозиторий с локальным командой `git remote add origin <link to the repository>`.
Проверить связались ли репозитории можно командой `git remote`.
5. Переименовать главную ветку в *main* с помощью `git branch -M main`.
6. Отправить изменения в удаленный репозиторий командой `git push -u origin main`.
7. Чтобы отправить изменения, сделанные в удаленном репозитории, в локальный, делаем коммит на GitHub и используем команду `git pull` в локальном.
8. Для переноса изменений из локального репозитория в удаленный, создаем коммит и используем команду `git push`.
9. Разрешение конфликтов осуществляется в VSCode тем же образом как в **разделе 10**.




## 13. Работа с чужими репозиториями.
1. В своем аккаунте на GitHub создать копию репозитория из другого аккаунта с помощью кнопки `Fork`.
2. Скопировать ссылку на репозиторий путем `code -> local -> https>`.
3. В корневой папке выполняем клонирование репозитория командной `git clone <link>`.
4. Создать новую ветку `git branch <branchName>` или `git checkout -b <branchName>`.
5. Вносим и фиксируем изменения.
6. После коммита выполняем команду `git push --set-upstream origin <branchName>`.
7. Через GitHub выполнить `compare & pull request`. Если команда не появляется, идем путем `new pull request -> выбираем нужную ветку в head repository -> create pull request`