skv_lab.md 6.9 KB

Создание аккаунта и репозитория в СКВ gihtub

  1. Создать аккаунт на https://kolei.ru

    • логин - первая буква имени и фамилия в латинице. Например, логин для "Евгений Колесников" будет ekolesnikov
    • пароль произвольный
  2. Создать репозиторий на kolei.ru НЕ ДОБАВЛЯЯ В НЕГО README.MD

  3. Инициализировать новый репозиторий на компьютере (создать отдельный каталог):

    Вообще в наш курс не входит обучение командной строке операционной системы, но оказалось, что будущие программисты этого не умеют...

    1. Запускаем на локальном компьютере программу cmd

      Откроется черное окно консоли, в которой будет написан текущий каталог, для винды это каталого пользователя, обычно это c:/users/user

    2. Создаем каталог для проекта командой mkdir <имя каталога>, например

      mkdir skv
      
    3. Переходим в этот каталог командой cd <имя каталога>

      cd skv
      
    4. Текущий каталог должен быть примерно таким: c:/users/user/skv

    Все необходимые команды написаны в репозитории после создания, но надо понимать что они делают и когда их выполнять:

    • Команда git init создает в ТЕКУЩЕМ каталоге новый локальный репозиторий (выполняется один раз):

      git init
      
    • Прежде чем добавлять файлы в репозиторий нужно создать в корне репозитория файл .gitignore и записать туда игнорируемые файлы и каталоги.

      Для C# там надо написать:

      # в каталогах bin и obj записываются скомпилированные файлы
      */bin/
      */obj/
      # в каталоге .vs хранятся локальные настройки VisualStudio
      .vs/
      # в каталоге packages хрянятся зависимости
      packages/
      
    • Для записи коммитов в репозиторий пользователь должен быть идентифицирован. Для этого выполните команды (один раз для репозитория):

      git config user.name "Ваше имя"
      git config user.email "Ваша почта"
      

      Если вы работаете дома, то можете один раз выполнить эти команды с флагом --global

    • В колледже используется прокси, из-за которого git может ругаться на не верный сертификат. В этом случае отключите проверку сертификата:

      git config --global http.sslVerify false
      
    • Команда git add <имя файла> помечает файл как отслеживаемый системой контроля версий. Вместо конкретного имени можно указать "." (символ точки), чтобы добавить в отслеживаемые все изменившиеся файлы. Выполняется перед каждым коммитом.

      git add .
      
    • Команда git commit сохраняет отслеживаемые файлы в локальный репозиторий. Выполняется при завершении какого-то законченного атомарного действия (создали класс, написали функцию...)

      git commit -m "текст комментария"
      
    • Команда git remote add <алиас> <url> добавляет в настройки локального репозитория ссылку на внешний репозиторий. Выполняется один раз для каждого внешнего репозитория (их может быть более одного).

      git remote add origin <ссылку на проект копируйте из внешнего репозитория>
      
    • Команда git push [-u] <алиас внешнего репозитория> <название ветки> отправляет содержимое локального репозитория в указанный внешний репозиторий. Ветка по-умолчанию в Git-е: master. Ключ -u задает комбинацию алиас + внешний репозиторий по-умолчанию, т.е. в следующий раз можно использовать просто каоманду git push.

      git push origin master
      
    • если на компьютере установлен credential manager, то он может запоминать последнего пользователя и не разрешить запись в другой репозиторий. В этом случае удаляем его из системы:

      git config --system --unset credential.helper
      
    • для GOGS (что-то с буфером передачи)

      git config --global http.postBuffer 157286400    
      
  4. Исследовать команды, описанные в лекции. Команды и возвращаемый результат записать в readme.md, используя формат MarkDown.

    Команды, которые надо выполнить и сохранить логи работы помечены значком 🕮

    • куски кода или консольный ввод/вывод в MarkDown-е обозначаются тройными обратными кавычками:

      ```

      Здесь кусок кода
      

      ```

  5. Результаты опубликовать в репозитории, созданном в п.2 и скинуть ссылку в чат.

Пример выполнения