IU5

🔹 1. Создание и настройка локального репозитория

Содержание

Цель работы

Освоить базовые навыки работы с гитом. Создать собственный репозиторий на GitHub

Введение

здесь будет рассказано как:

Настройка ssh-соединения с GitHub

Данные указания по умолчанию относятся к операционным системам семейства Linux, а не Windows консоли. Для MacOS рядом будут даны отдельные инструкции.

В консоли Linux убедитесь, что у вас стоит git. Для этого введите следующую команду:

git --version

При необходимости поставьте git через команду:

sudo apt install git

На macOS Git обычно уже предустановлен

Установка Git для Windows:

Скачайте и установите Git для Windows: https://git-scm.com/download/win

Во время установки выберите Git Bash (это терминал с командами Linux-подобного Git).

ssh-соединение позволяет работать с GitHub через приватный ключ, хранящийся на вашем устройстве. ssh-соединение категорически НЕ СЛЕДУЕТ настраивать на устройствах, предполагающих общий доступ (компьютеры в лабораторных аудиториях и т.п.).

Сгенерируйте ssh-ключ следующей командой, где your_email@example.com следует заменить вашей почтой, на которую зарегистрирован аккаунт в GitHub.

ssh-keygen -t ed25519 -C "your_email@example.com"

Подтвердите расположение файла по умолчанию (нажав клавишу enter, дополнительно писать ничего не надо). Введите passphrase (можно оставить пустым, рекомендуется) и нажмите Enter. Подтвердите введенную passphrase.

Убедитесь, что в выводе присутствует ваш fingerprint и key’s randomart image.

ssh-agent — это программа, которая:

Запустите приложение ssh-agent в фоне. Для этого введите следующую команду:

eval "$(ssh-agent -s)"

Убедитесь, что в консоли вывелось следующее:

Agent pid ******

Где ** - некоторое число.

Добавьте ваш приватный ключ в ssh-agent (только для Linux):

ssh-add ~/.ssh/id_ed25519

Только для MacOS:

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Выведите в консоль публичный ключ (только для Linux):

cat ~/.ssh/id_ed25519.pub

Скопируйте вывод из консоли.

Либо (только для MacOS) скопируйте в буфер обмена публичный ключ:

pbcopy < ~/.ssh/id_ed25519.pub

Регистрация на GitHub

Затем в правом верхнем углу нажмите по иконке своего профиля, откройте настройки (Settings).

enter image description here

Слева в разделе “Access” выберите вкладку “SSH and GPG keys”.

enter image description here

Справа сверху нажмите на кнопку “New SSH key”. В поле “Title” введите название, которое будет описывать назначение данного ключа. В поле “Key” вставьте публичный ключ (который скопировали ранее). Подтвердите добавление нажав на кнопку “Add SSH key”.

Проверьте, что вы успешно настроили ssh-соединение. Для этого введите в консоли следующую команду:

ssh -T git@github.com

Подтвердите, что вы хотите установить соединение, написав “yes” (без кавычек) и нажав enter.

Убедитесь, что вывод соответствует следующему (где “username” - это ваш логин на github.com):

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Создание собственного репозитория

Зайдите на github.com и создайте новый пустой приватный репозиторий.

Для этого нажмите на кнопку “New” в левой части главной страницы.

enter image description here

Назовите его так, как считаете нужным, но желательно достаточно информативно. Например, Lastname-SP-Labs-2025, где вместо “Lastname” должна быть ваша фамилия на латинице.

Убедитесь, что вы создаете приватный, а не публичный репозиторий (должен стоять флажок напротив “Private”).

enter image description here

Оставьте все остальные настройки без изменений.

enter image description here

Создайте репозиторий, нажав на кнопку “Create repository”.

На странице вашего репозитория на github.com скопируйте ssh-ссылку на него (имеет формат вида git@github.com:Username/Repo.git).

SSH-ссылка репозитория на GitHub -> справа вверху над списком файлов есть зелёная кнопка <> Code. Нажми её.

Открыв консоль Linux, перейдите в ту директорию, в которую вы хотите склонировать репозиторий. Склонируйте репозиторий с помощью команды:

git clone repo-url

Где repo-url - ssh-ссылка на ваш репозиторий. После этого в текущий директории должна появиться новая директория с вашим репозиторием. Перейдите в нее с помощью команды cd.

Откройте свой удаленный репозиторий на github.com и убедитесь, что в нем отображаeтся ветка с названиями “main”

Создание ветки в репозитории

В консоле Linux проверить текущую ветку

git branch

В новых версиях Git по умолчанию создается ветка main. Если по умолчанию создается master, то переименуй:

git branch -M main

Проверьте, что всё OK

git status

Должно показать, что рабочая директория чистая (ничего нет, кроме README.md, если он создавался).

Создайте ветку для первой лабораторной

git checkout -b lab_1

checkout -b => создать новую ветку и сразу в неё переключиться.

Теперь вы работаете в ветке lab_1.

Убедитесь, что вы находитесь в директории с вашим репозиторием на ветке “lab_1”. Для этого введите следующую команду:

git status

Убедитесь, что вывод соответствует следующему:

On branch lab_1
Your branch is up to date with 'origin/lab_1'.

nothing to commit, working tree clean

Добавление файла с исходным кодом в репозиторий

Создай файл(ы) (например, index.html и style.css).

Пуш файлов в удаленный репозиторий на GitHub

Находясь на ветке “lab_1” своего репозитория, убедитесь, что git “видит” только новые файлы с исходным кодом.

Для этого введите в консоли следующее:

git status

В untracked files должен быть показан только один файл: main.cpp (или файл с другим названием, который вы создали в предыдущем пункте):

On branch lab_1
Your branch is up to date with 'origin/lab_1'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        index.html
        style.css

nothing added to commit but untracked files present (use "git add" to track)

Если git видит другие файлы, то удалите их из директории.

Добавьте один файл в индекс для коммита:

git add index.html

Убедитесь, что файл проиндексирован для коммита:

git status

После данной команды вывод должен быть следующим:

On branch lab_1
Your branch is up to date with 'origin/lab_1'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html

Добавьте ещё один файл в индекс для коммита:

git add style.css

Убедитесь, что файл проиндексирован для коммита:

git status

После данной команды вывод должен быть следующим:

On branch lab_1
Your branch is up to date with 'origin/lab_1'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html
        new file:   style.css

или

Добавьте ваши файлы в индекс для коммита:

git add --all

добавляет все новые и измененные файлы, включая случайно ненужные.

Закоммитьте изменения:

git commit -m "commit message"

Где вместо commit message введите на английском языке осмысленное сообщение к коммиту. Например, “add index.html and style.css”.

Запушьте созданный коммит в удаленный репозиторий (ветки локального и удаленного репозитория уже связаны между собой):

git push

Откройте на github.com свой удаленный репозиторий и перейдите в ветку lab_1. Убедитесь, что в вашем репозитории на GitHub появились нужные файлы.

Ветка lab_2: git checkout main # возвращаетесь на main git pull # подтянуть актуальное, при необходимости git checkout -b lab_2 # создать ветку для lab_2 … работаете … git add . git commit -m “Лабораторная работа 2” git push -u origin lab_2

🔹 6. Общая схема работы

Всегда начинайте с ветки main — в ней хранится “чистая” версия. Для каждой лабораторной работы: