Comments 20
Сложно сказать где оригинальный источник, но перевод уже был на Хабре https://m.habr.com/en/company/flant/blog/419733/ За пару лет немного поменялось, правда)
А ещё для подобных редких сценариев использования можно использовать любой GUI-клиент. С ним меньше вероятность усугубить проблему ещё сильнее.
редкой функциональности там вообще может не быть
и через гуи зачастую точно указать, что требуется сложнее, чем в консоли
хотя просмотр несомненно в гуи удобнее
А что мешает совмещать это? Например, через GUI найти нужный коммит, а через командную строку выполнить операцию над ним?
поэтому его просто не используют
и поиск грепом часто тоже удобнее получается, особенно в больших репозитариях
я лично использую неконсоль для мержа конфликтов, просмотра различий( и то не всегда) и blame, остальное удобнее в консоли
GUI хорош тем, что единомоментно показывает всё и сразу: и дерево коммитов, и список всех веток, и статус файлов с диффами. Действия, несомненно, проще выполнять через консоль, то вот информативность консоли, увы, очень низкая.
"большинство" действий обычно элементарные. Коммит + навигация по веткам. Там гуй удобнее.
Чуть более сложные действия — интерактивный ребейс, или инкрементальное накатывание патча — опять же, специализированный для языка mergetool aka diff встроенный в гуй — удобнее!
Коммиты непосредственно, либо с amend — ну опять же.
Reset soft/hard — без разницы, одинаково. Однако в гуе есть кроме них ещё парочка режимов.
Вот разные хитрые мержи-осьминоги, пуш в удалённую репу (чтоб точно знать, что запушилась только ветка, а не пачка локальных тэгов вдобавок); поиск бага с помощью bisect — оно да, из командной строки.
Но, к слову, эти действия совсем не относятся к "большинству"!
кто его знает, что гуй там отправит
mergetool и из консоли вызывается какой назначишь, так что разницы нет
даже в консоли универсальнее, гуй может и не позволять сменить mergetool, пользуйся тем который встроен, даже если он неудобен
то коммит в гуе удобнее, совсем не очевидно, там только просмотр изменений от гуя нужен, и то не всегда необходим
ну и все это в гуе еще найти надо, большинство мануалов о командах рассказывает, а как это в произвольном гуе вызвать, да еще с нужными параметрами, совсем не очевидно
и когда столкнешься с другим гуи, его заново изучать надо, а консоль везде одинакова
Про пуш я и написал, что надёжнее из консоли. Тут речь всё о локальной копии.
Mergetool — ключевое слово "если неудобен". На практике — вполне удобен, надобности в каком-то стороннем не возникает. Хотя вопрос удобства — этот как вопрос вкуса, о нём сложно спорить (лично мне текстовый как раз более неудобен).
Мануалы по командам — да, есть. Какие-то сложные действия проще сделать из консоли. Но как раз повседневные проще в гуе. Он не "произвольный", а однажды взятый, и не меняется. Речь же о комфорте повседневной работы, а не о героической борьбе с разными удалёнными консолями. Если есть IDE, которая устраивает, и в которой есть комфортная поддержка гита — почему бы им не пользоваться? Можно там же вызвать окно терминала и набрать команду руками, если это привычнее. Но если привычка как раз посередине между гуем и терминалом — не вижу смысла. Особенно для интерактивных команд, где надо что-то выбрать/выделить.
Эта статья второго типа. Вообще не понятно что происходит с существующими коммитами и ветками, появляются ли новые коммиты, как меняются существующие.
Оригинал включает в себя ссылки на переводы на другие языки. Русскоязычных даже два. Зачем нужен третий перевод? :)
Git, я хочу все отменить! Команды исправления допущенных ошибок