10 git-команд, которые вы пожа... Заметка
DEV Community на русском

10 git-команд, которые вы пожалеете, что не знали раньше

В этой статье представлен тщательно отобранный список команд Git среднего уровня, необходимых для повседневной разработки, помимо базовых add, commit, pull и push. Начинается она с сопоставления git merge и git rebase, объясняя, как merge сохраняет историческое расхождение, в то время как rebase создает более чистую, линейную историю, переписывая коммиты. Автор советует использовать rebase для индивидуальной работы, но проявлять осторожность с общей историей из-за ее природы, переписывающей историю. Обсуждаются стратегии разрешения конфликтов как для merge, так и для rebase, а также полезность отмены этих операций.Команда git commit --amend представлена как способ добавления небольших, забытых изменений к предыдущему коммиту, улучшая эстетику истории коммитов. Отмечается, что amend создает новый коммит, изменяя его хэш, что требует осторожного обращения при отправке в удаленную ветку. Это подводит к git push --force-with-lease, более безопасной альтернативе --force для отправки переписанной истории, поскольку она предотвращает случайную перезапись чужой работы.Затем подробно описывается "король Git" — git rebase -i (интерактивный rebase), подчеркивая его способность преобразовывать беспорядочные истории коммитов в чистые, логичные последовательности. Объясняются различные подкоманды, такие как pick, reword, edit, squash, fixup и drop, демонстрируя, как разработчики могут манипулировать, объединять и удалять коммиты для создания элегантной истории. В статье признаются разные мнения о чистоте истории коммитов, но подчеркивается ценность этой команды.Далее git stash представлен как важная команда для временного сохранения несохраненных изменений при необходимости смены контекста, например, для исправления ошибки в продакшене. Она охватывает сохранение неотслеживаемых файлов с флагом -u и важность именования stash для лучшей организации. Предоставляются команды для перечисления, отображения, применения и извлечения stash, описывая рабочий процесс управления временными изменениями.Наконец, git cherry-pick представлен как очень полезная команда для выборочного применения конкретного коммита из одной ветки в другую без слияния или перебазирования целых веток. Это особенно полезно для включения отдельных исправлений или функций из других линий разработки. В целом, статья служит практическим руководством для повышения навыков работы с Git за пределами основ, предлагая команды, которые решают распространенные сценарии реальной разработки.