Ответ
Работа с Git через командную строку (CLI) — стандартная практика, обеспечивающая полный контроль, скорость и возможность автоматизации. Вот ключевые команды и сценарии их использования:
1. Базовый рабочий цикл:
# Клонирование репозитория
git clone https://github.com/user/repo.git
# Создание и переход на новую ветку для задачи
git checkout -b feature/JIRA-123-new-endpoint
# Просмотр изменений
git status
git diff
# Добавление файлов в индекс и создание коммита
git add . # или конкретные файлы
git commit -m "feat(api): add new POST /users endpoint"
# Отправка ветки в удалённый репозиторий
git push -u origin feature/JIRA-123-new-endpoint
2. Навигация и история:
# Графическое отображение истории веток
git log --oneline --graph --all -10
# Просмотр изменений конкретного коммита
git show <commit-hash>
# Переключение между ветками
git checkout main
git switch feature-branch
3. Продвинутые операции для поддержания истории в чистоте:
# Интерактивное перебазирование для "причесывания" истории
git rebase -i main
# Взятие одного коммита из другой ветки
git cherry-pick <commit-hash>
# Временное сохранение незакоммиченных изменений
git stash
git stash pop
4. Синхронизация с удалённым репозиторием:
# Получение последних изменений и слияние с текущей веткой
git pull origin main --rebase # Предпочтительнее merge для линейной истории
# Обновление списка удалённых веток
git fetch --prune
Преимущества CLI: Скриптование сложных операций (например, массовый rebase), точный контроль над каждым действием, универсальность на любом сервере или в CI/CD-пайплайне.
Ответ 18+ 🔞
Слушай, а вот этот ваш Гит через консоль — это ж, блядь, как старый добрый мясорубка: страшно выглядит, но если руку набить, фарш получается — заебись. Никаких этих ваших кнопочек, которые нажмёшь не туда и всё, пиздец, история коммитов. Тут ты сам себе хозяин, хоть в скрипт всё заверни и пусть ночью само мержится, пока ты спишь. Вот, смотри, как этим хозяйством управлять.
1. Ну, стандартная рутина, с неё все начинают:
# Стянуть репозиторий с какого-нибудь GitHub, чтоб он у тебя локально был
git clone https://github.com/user/repo.git
# Отпочковаться на свою собственную ветку, чтобы не мешать другим. И сразу на неё перейти.
git checkout -b feature/JIRA-123-new-endpoint
# Окинуть взглядом, что ты там натворил
git status
git diff
# Отобрать файлы, которые в коммит пойдут, и сам коммит создать
git add . # или если не всё, то конкретные файлы
git commit -m "feat(api): add new POST /users endpoint"
# И вытолкнуть свою ветку на сервак, чтоб все видели твои подвиги
git push -u origin feature/JIRA-123-new-endpoint
2. Чтобы не заблудиться в трёх соснах... то есть в истории коммитов:
# Красиво, с графиком, посмотреть, кто от кого родился
git log --oneline --graph --all -10
# Увидеть, что именно за изменения в конкретном коммите
git show <commit-hash>
# Прыгнуть с ветки на ветку, как обезьяна
git checkout main
git switch feature-branch
3. А вот это уже для тех, кто не любит мусор в истории. Чистюли, блядь.
# Интерактивный ребейз — это когда ты можешь переписать историю, как в Северной Корее. Слить коммиты, переименовать, переставить.
git rebase -i main
# Своровать один красивый коммит из чужой ветки и себе прилепить
git cherry-pick <commit-hash>
# Временная передышка: сложить все незакоммиченные правки в коробку, а потом достать
git stash
git stash pop
4. Чтобы не отстать от жизни и не получить конфликтов на ровном месте:
# Подтянуть свежие изменения с главной ветки и применить свои поверх них (чисто, линейно)
git pull origin main --rebase
# Освежить список веток на сервере, убрать те, что уже удалили
git fetch --prune
А главный плюс консоли, ёпта, в чём? Власть, блядь! Полная. Напишешь скрипт — и он тебе хоть сотню веток перебазирует, пока ты кофе пьёшь. На любом сервере, в любом пайплайне — везде работает одинаково. Никаких сюрпризов от очередного обновления интерфейса в твоей любимой IDE. Только ты, терминал и чувство глубокого удовлетворения, когда всё летает.