Какие основные команды Git в командной строке вы используете в работе?

Ответ

Работа с 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. Только ты, терминал и чувство глубокого удовлетворения, когда всё летает.