Что такое GIT?
В принципе вы можете читать все на офф. сайте но я неосилятор и вы наверняка тоже не станете это осиливать. И нам оно особо и не надо, мы не так плотно с ним работаем. По этому простыми словами, как обычно.
GIT - система контроля версий. Эта штука позволяет фиксировать состоянии кода (комитить) и возвращаться к нему когда вздумается.
Т.е. вы сделали изменение в коде, например собака стала кошкой и вы делаете соответствующий комит с название “dog now cat”. Спустя полгода вас спрашивают почему собака стала кошкой и вы даете ссылку на этот комит.
На деле гит делает скрытый каталог .git в вашем проекте. В этом каталоге хранятся метаданные гита, как раз они и позволяют нам возвращаться к определенному состоянию.
ЗАПОМНИТЕ: GIT запоминает ВСЁ, никогда не храните пароли и другие секреты в гите!
И никогда не храните в гите бинарные данные (exe, архивы и т.п.) потому что гит не сможет понять какую строку вы там поменяли и будет дублировать эти бинарные данные, от чего ваш репозиторий будет расти в геометрической прогрессии.
Основные команды:
- git add . # Добавит все измененные файлы текущего каталога в коммит
- git commit -m "my commit" # создаст коммит с именем "my commit"
- git push # Отправит ваш коммит на удаленный сервер гит
- git remote show origin # Покажет адрес удаленного сервера гит
Что такое GitHub и GitLab?
Это “гит сервера" с веб интерфейсом
Т.е. вы можете зайти на гитхаб, нажать там создать репозиторий, сделать git clone себе
В таком режиме работы (и он для нас является по умолчанию) у вас есть 1 центральный репо в гитхабе. Новые работники могут сделать git clone этого репозитория себе на машину и получить все ваши исходники.
При работе с удаленным репо, по мимо git commit необходимо делать git push, чтобы ваши локальные изменения попали на сервер. Если вы работает с другим человеком, то ему нужно будет делать git pull, для того, чтобы получить ваши изменения.
НО! Сделать удаленный репозиторий можно и без гитхаба или гитлаба. На самом деле эти инструменты предоставляют нам еще и CI/CD для нашего кода.
Мы будем в приоритете использовать GitLab и его CI/CD.