diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aab52d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.png \ No newline at end of file diff --git a/GitInstruction.md b/GitInstruction.md new file mode 100644 index 0000000..c20c863 --- /dev/null +++ b/GitInstruction.md @@ -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 `. +По умолчанию имя основной ветки в Git - *master*. +Список веток в репозитории можно посмотреть с помощью команды `git branch`. + +Существуют альтернативные способы создания веток - `git checkout -b branchName` и `git switch -c branchName`. С помощью этих команд можно создать новую ветку и автоматитечски переключиться на нее. + +## 10. Слияние веток и разрешение конфликтов. +Для слияния новой ветки с текущей, нужно выполнить команду `git merge `. +Если была изменена одна и та же часть файла в обеих ветках, то может возникнуть конфликт, который потребует участия пользователя. `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 `. +Проверить связались ли репозитории можно командой `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 `. +4. Создать новую ветку `git branch ` или `git checkout -b `. +5. Вносим и фиксируем изменения. +6. После коммита выполняем команду `git push --set-upstream origin `. +7. Через GitHub выполнить `compare & pull request`. Если команда не появляется, идем путем `new pull request -> выбираем нужную ветку в head repository -> create pull request` \ No newline at end of file