From c40035f817fe8b952286b21aaab01a54265f0f5d Mon Sep 17 00:00:00 2001 From: Olya Date: Wed, 22 May 2024 15:30:41 +0300 Subject: [PATCH 1/4] Added a file with instruction --- .gitignore | 1 + GitInstruction.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 .gitignore create mode 100644 GitInstruction.md 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..d389d92 --- /dev/null +++ b/GitInstruction.md @@ -0,0 +1,53 @@ +![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. Работа с чужими репозиториями +В своем аккаунте на GitHub создать копмию репозитория из другого аккаунта с помощью кнопки `Fork`. \ No newline at end of file From 42d2d06b3ad442efb8ed98c03e671811be299614 Mon Sep 17 00:00:00 2001 From: Olya Date: Wed, 22 May 2024 15:54:01 +0300 Subject: [PATCH 2/4] Added a 12th paragraph - working with a remote repository --- GitInstruction.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/GitInstruction.md b/GitInstruction.md index d389d92..907d375 100644 --- a/GitInstruction.md +++ b/GitInstruction.md @@ -49,5 +49,25 @@ git config --global user.email your mail@example.com В случае, когда мы пытаемся удалить неслитую ветку данной командой, возникнет ошибка. Для принудительного удаления используем команду с заглавной буквой **D**.`git branch -D branchName`. -## 12. Работа с чужими репозиториями +## 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. Работа с чужими репозиториями. В своем аккаунте на GitHub создать копмию репозитория из другого аккаунта с помощью кнопки `Fork`. \ No newline at end of file From 3322f5d6fc78b9afbec5172b2d719c59bec6f195 Mon Sep 17 00:00:00 2001 From: Olya Date: Wed, 22 May 2024 16:01:56 +0300 Subject: [PATCH 3/4] Added a 13th paragraph - creating pull request --- GitInstruction.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/GitInstruction.md b/GitInstruction.md index 907d375..e2d8e7d 100644 --- a/GitInstruction.md +++ b/GitInstruction.md @@ -70,4 +70,10 @@ cd FolderName/ ## 13. Работа с чужими репозиториями. -В своем аккаунте на GitHub создать копмию репозитория из другого аккаунта с помощью кнопки `Fork`. \ No newline at end of file +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 выполнить `pull request`. Если команда не появляется, идем путем `new pull request -> выбираем нужную ветку в head repository -> create pull request` \ No newline at end of file From d30ddbdfd4e717de9c893ace100dbff6bb008757 Mon Sep 17 00:00:00 2001 From: Olya Date: Wed, 22 May 2024 16:07:40 +0300 Subject: [PATCH 4/4] Fixed a 13th paragraph - creating pull request --- GitInstruction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GitInstruction.md b/GitInstruction.md index e2d8e7d..c20c863 100644 --- a/GitInstruction.md +++ b/GitInstruction.md @@ -76,4 +76,4 @@ cd FolderName/ 4. Создать новую ветку `git branch ` или `git checkout -b `. 5. Вносим и фиксируем изменения. 6. После коммита выполняем команду `git push --set-upstream origin `. -7. Через GitHub выполнить `pull request`. Если команда не появляется, идем путем `new pull request -> выбираем нужную ветку в head repository -> create pull request` \ No newline at end of file +7. Через GitHub выполнить `compare & pull request`. Если команда не появляется, идем путем `new pull request -> выбираем нужную ветку в head repository -> create pull request` \ No newline at end of file