DevOps?!? Стартует с GIT…

Автор: | 5 мая, 2025
Поделиться...

Грубо говоря это то, что на диаграмме ниже:

Задача инженеров автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps engineers) — сделать процессы разработки и поставки программного обеспечения согласованным с эксплуатацией, объединив их в единое целое с помощью инструментов автоматизации.

Меня взбаламутили обещанием интересной работы и её адекватной (читай хорошей) оплаты. Всего то четыре месяца ежедневного обучения по несколько часов и наступит счастье.

День первый — HDD для учёбы/работы

Перебрал десяток валяющихся винтов и таки нашёл один относительно рабочий — он и будет подопытным. Буду на нём всё держать, пока не помрёт. Ушло на это полдня.

Поставил на него четыре вида линуксов (выделил по 1 процессору, 4 гига ОЗУ и по 30 гигов винта на каждый). Потом два снёс, ещё раз их поставил и гемороился ещё полдня чтобы на всех было нормальное разрешение и можно было относительно комфортно в их гуях работать.

День второй — Что же такое GIT?

Начинаю знакомство с GIT. На youtube нашёл какие-то уроки по ним и поставил GIT (да и дальше по ним же буду учиться). В установке нет ничего интересного — все галки по умолчанию.

Так же, благодаря видосам, пришлось поставить Visual Studio Code раз уж на нём обучают. (Правда выяснилось что он у меня уже стоит — в нём сразу открылись исходники моего волейбола от 2019 года 🙂 )

git init — создание/инициализация первичного репозитория

Первая не стыковка. Многоточия не было. Поэтому в настройках ищем path потом открываем git и там уже пишем путь до него.

И в довершение перезапускаем редактор.

Регистрируемся на https://github.com/ и… Возвращаемся назад чтобы зарегить в установленном GIT свои имя и емайл в командной строке:

-- инициализация данных
git config --global user.name "Ваше Имя"
git config --global user.email ваш_email
-- проверка данных
git config --list

Дальше магия… Саму ссылку откопал здесь:

git add .
git commit -m "текст коммита"
git remote add origin https://github.com/GAVsi115/git-test.git
git push -u origin master

Как и ожидалось, на видео нет логина по последней команде… Но там не сложно.

И второе.. Сейчас основное называется main, а не master и соответственно не там нужно смотреть на полученные изменения на сайте:

Из 4 урока интересны только команды git clone — запрос клона с github и git status — текущий статус изменений синхронизации с github-ом. Всё что касается плагина git hystory diff уже ни черта так не работает как в видео.

Ну а далее, просто возьмём ответ git-а на команду справки:

PS D:\Git-test> git --help

usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           [--super-prefix=<path>] [--config-env=<name>=<envvar>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone     Clone a repository into a new directory
   init      Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add       Add file contents to the index
   mv        Move or rename a file, a directory, or a symlink
   restore   Restore working tree files
   rm        Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect    Use binary search to find the commit that introduced a bug
   diff      Show changes between commits, commit and working tree, etc
   grep      Print lines matching a pattern
   log       Show commit logs
   show      Show various types of objects
   status    Show the working tree status

grow, mark and tweak your common history
   branch    List, create, or delete branches
   commit    Record changes to the repository
   merge     Join two or more development histories together
   rebase    Reapply commits on top of another base tip
   reset     Reset current HEAD to the specified state
   switch    Switch branches
   tag       Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch     Download objects and refs from another repository
   pull      Fetch from and integrate with another repository or a local branch
   push      Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.

Вот и пятый урок.

git pull — подгрузить из репозитория изменения

Итоги недели

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

Так же выяснилось, что для решения задач автоматизации GitHub не подходит. CI/CD «разработан» в/для GitLab и соответственно в нём и будут дальнейшие заморочки.

Шпаргалка по командам GIT

gitk — некоторое подобие графического отображения зафиксированных изменений (как на сайте)

git initзаставляем GIT создать локальный пустой репозиторий для папки в которой выполнена команда (участвуют все подкаталоги)
git add [file|.]указывает GIT отслеживать изменения указанного файла или всего что есть, если указана точка (сохранить изменения)
git statusпоказывает текущий статус изменений в отслеживаемых файлахфлаг —short указывает на то, что нужно вывести краткую информацию
git pullполучить текущее состояние из интернета
git pushотправить текущие (закоммиченные) правки в интернет
git push —set-upstream origin NAMEпервичная заливка ветки NAME в интернет
git reset [file|.]отменить сохранённые изменения (от add)
git reset —soft HEAD^1отменяет последний коммит, но не отменяет изменения в файлах (HEAD^1 от головы 1 назад)
git reset —hard HEAD^1полностью отменяет последний коммит и изменения в файлах
git checkout [file|.]отменить отслеживаемые изменения 
git logотображает всю историю изменений
git branchотображает текущие ветки репозитория и показывает в какой сейчас находимся
git branch NAMEсоздаёт новую ветку с указанным именем
git branch -m NAMEпереименовывает текущую ветку
git branch -d NAMEудалит ветку NAME, если она уже слита с текущей
git branch -D NAMEудалит ветку NAME немедленно
git switch NAMEпереключиться в ветку NAME
git checkout NAMEсделать активной ветку NAME
git merge NAMEсливает указанную ветку NAME с текущей (если нет конфликтов)
git diffотобразит наличие конфликтов, проставив маркеры в файлах

Поделиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *