Перечисли основные команды Git и их назначение.

Ответ

Основные команды Git для управления репозиторием:

  • git init – инициализирует новый локальный репозиторий в текущей директории.
  • git clone [url] – создает локальную копию удаленного репозитория.
  • git add [file] – добавляет изменения из рабочей директории в индекс (staging area).
  • git commit -m "message" – фиксирует проиндексированные изменения, создавая новый коммит с описанием.
  • git status – показывает состояние рабочей директории и индекса (измененные, новые, удаленные файлы).
  • git log – отображает историю коммитов текущей ветки.

Команды для работы с ветками и удаленным репозиторием:

  • git branch – выводит список локальных веток.
  • git checkout [branch] – переключается на указанную ветку.
  • git checkout -b [new-branch] – создает новую ветку и сразу переключается на нее.
  • git merge [branch] – сливает указанную ветку в текущую.
  • git push – отправляет коммиты из локальной ветки в удаленный репозиторий.
  • git pull – загружает изменения из удаленного репозитория и сливает их с текущей локальной веткой (эквивалентно git fetch + git merge).

Пример рабочего процесса с веткой:

# Создание новой ветки для задачи
$ git checkout -b feature/new-login

# Добавление изменений и коммит
$ git add .
$ git commit -m "Add login screen UI"

# Публикация ветки в удаленный репозиторий
$ git push -u origin feature/new-login

Ответ 18+ 🔞

А, так вот ты как, Гит, сука, работаешь! Ну-ка, давай разберём эту вашу магию, а то народ безмозглый, блядь, путается в трёх соснах и в трёх командах. Сидит, как Герасим, и мычит "му-му", а нихуя не понятно.

Смотри сюда, вот тебе база, без которой ты — просто папка с файлами, мартышлюшка.

Чтобы начать этот цирк:

  • git init – это как крикнуть "Ёбаный театр начинается!" в пустой папке. Теперь тут репозиторий, и Гит за тобой следит.
  • git clone [url] – это когда ты видишь чужую крутую штуку и думаешь: "Хочу такую же, нахуй!". Качаешь себе весь проект целиком, со всей его историей и грехами.
  • git add [file] – о, это важно! Ты сделал работу, но Гит её ещё не видит. Этой командой ты суёшь файлы ему в лицо: "Смотри, блядь, что я натворил! Запоминай!" (Это staging area, или индекс, для умных).
  • git commit -m "message" – а вот тут ты уже официально закрепляешь результат. Как печать поставил. "Всё, я это сделал, вот описание, и назад пути нет". Только пиши нормальные сообщения, а не "чё-то сделал", а то сам потом охуеешь.
  • git status – лучший друг параноика. Показывает, что ты там намудрил, что готово к коммиту, а что Гит вообще в упор не видит. Запускай почаще, чтобы не было сюрпризов.
  • git log – история твоих пакостей в обратном порядке. Кто, когда и что накоммитил. Можно с попкорном смотреть.

А теперь про ветки, потому что работать в одной — это как всем сериться в один сортир:

  • git branch – показывает, какие у тебя вообще есть ветки и на какой ты сейчас сидишь.
  • git checkout [branch] – прыжок с одной ветки на другую. Вжух — и ты уже в другом измерении.
  • git checkout -b [new-branch] – а это создание новой ветки и прыжок на неё одной командой. Чтоб не дрочиться. "Хочу поэкспериментировать, но боюсь всё сломать" — вот решение.
  • git merge [branch] – слияние. Ты накопал в своей экспериментальной ветке что-то годное и теперь говоришь: "Так, основная ветка, вбирай в себя эту хуйню, она проверенная".
  • git push – это когда ты устал от одиночества и кричишь на весь удалённый сервер (типа GitHub): "Эй, пидары, смотрите, что я сделал! Берите мои коммиты!"
  • git pull – а это наоборот. Ты смотришь, что эти пидары натворили без тебя, и подтягиваешь их изменения к себе, чтобы не отставать.

Ну и пример, как это всё вместе выглядит в жизни, а не в учебнике:

# Решил сделать новую фичу для логина. Делаем отдельную ветку, чтоб не нагадить в основном.
$ git checkout -b feature/new-login

# Наваял кучу файлов. Добавляю их все под контроль.
$ git add .
# Фиксирую, как полковник на плацу.
$ git commit -m "Add login screen UI"

# А теперь выкладываю свою ветку на всеобщее обозрение, пусть коллеги охуевают.
$ git push -u origin feature/new-login

Вот и вся магия, ёпта. Главное — не бздеть и почаще коммитить. А то будешь как тот чувак, который неделю кодит, а потом git status показывает овердохуища изменений, и волнение ебать, с чего начинать. Пиздец, а не жизнь.