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

Задача инженеров автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения (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 | отобразит наличие конфликтов, проставив маркеры в файлах |