Установка и «Знакомство» (Configuration)
1. Установка
Для начала установим git на наш сервер:
sudo apt update
sudo apt install git -y
2. Настройка личности
Для того чтобы авторизоваться и пушить комиты своих сборок в GitHub, нам нужно выполнить данные команды:
git config --global user.name "igoryokhin"
git config --global user.email "igoryokhin@gmail.com"
Комиты это нынешняя версия написанного файла который ты отправляешь в GitHub, без авторизации git не даст тебе ничего сохранить
3. Проверка
Теперь проверяем что вышеописанные команды сохранили наши введенные данные:
git config --list
вот что мы получили:
user.name=igoryokhin
user.email=igoryokhin@gmail.com
maki@lablearning:~/GitRepository$
Создание первого локального репозитория
Репозиторий - это простая папка которую git использует как базу данных (папка .git)
Создаем папку в домашней директории:
sudo mkdir /home/maki/GitRepositoryDevOpsLab
Переходим по этомй пути:
cd /home/maki/GitRepositoryDevOpsLab
После чего инициализируем git:
git init
Создастся папка .git , проверяем статус:
git status
Получаем такой ответ:
maki@lablearning:~/GitRepository/DevOpsLab$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
default
nothing added to commit but untracked files present (use "git add" to track)
Я уже скопировал конфигурацию nginx в эту папку для пробы, теперь мы можем добавить его для сохранения в репозиторий:
git add default
После чего мы комитим наш добавленный файл на отправку в репозиторий:
git commit -m "Initial commit: nginx default config"
Вот что мы получаем в ответ:
[master (root-commit) 24d9bcf] Initial commit: nginx default config
1 file changed, 91 insertions(+)
create mode 100644 default
maki@lablearning:~/GitRepository/DevOpsLab$
Таким образом у нас появился локальный репозиторий на своем сервере!
Создание связи локального и удаленного репозитория
Нам потребуется зайти на сайт GitHub, авторизоваться и создать пустой репозиторий с аналогичным названием.
Псоле создания репозитория на GitHub нам сам же GitHub предлагает два варианта:
…or create a new repository on the command line
echo "# DevOpsLab" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/igoryokhin/DevOpsLab.git
git push -u origin main
…or push an existing repository from the command line
git remote add origin https://github.com/igoryokhin/DevOpsLab.git
git branch -M main
git push -u origin main
Раз мы создали уже и опробовали локальный репозиторий, мы пойдем по второму варианту
![[Схема работы с Git.canvas]]
Локальные изменения -> git add (индекс) -> git commit (локальный сейв) -> git push (облачный сейв)
Для того чтобы каждый раз не вводить токен для пуша в облако, нам понадобаться закешировать наш токен. Это делает данной командой:
git config --global credential.helper store
После чего потребуется еще раз пропушить локальный репозиторий
«Никогда не передавай свои приватные ключи или токены другим людям. Доступ выдается через настройки прав доступа (RBAC/Collaborators), а не через общий пароль»
Вопросы на засыпку
Проверочный вопрос (уровень выше)
Если ты:
-
Изменил файл
-
Сделал
git add -
Потом снова изменил файл
-
Сделал
git commit
👉 Что попадёт в коммит — первая версия или вторая?
Ответ
Что попадёт в коммит?
Если:
-
Изменил файл
-
git add file -
Снова изменил файл
-
git commit
👉 В коммит попадёт первая версия.
Потому что git add кладёт снимок в staging.
Всё, что изменилось после add — не попадёт, пока ты снова не сделаешь git add.