Pull to refresh

Comments 20

UFO just landed and posted this here
UFO just landed and posted this here

А ещё для подобных редких сценариев использования можно использовать любой GUI-клиент. С ним меньше вероятность усугубить проблему ещё сильнее.

в гуи клиентах как раз таки проще усугубить такими действиями
редкой функциональности там вообще может не быть
и через гуи зачастую точно указать, что требуется сложнее, чем в консоли
хотя просмотр несомненно в гуи удобнее

А что мешает совмещать это? Например, через GUI найти нужный коммит, а через командную строку выполнить операцию над ним?

ничего не мешает, кроме того, что в гуи большинство действий делать неудобно
поэтому его просто не используют
и поиск грепом часто тоже удобнее получается, особенно в больших репозитариях
я лично использую неконсоль для мержа конфликтов, просмотра различий( и то не всегда) и blame, остальное удобнее в консоли

GUI хорош тем, что единомоментно показывает всё и сразу: и дерево коммитов, и список всех веток, и статус файлов с диффами. Действия, несомненно, проще выполнять через консоль, то вот информативность консоли, увы, очень низкая.

Вот-вот, для меня изучать дерево комитов в консоли и делать навигацию по нему — это как рисовать в пэйнте без мыши.

"большинство" действий обычно элементарные. Коммит + навигация по веткам. Там гуй удобнее.
Чуть более сложные действия — интерактивный ребейс, или инкрементальное накатывание патча — опять же, специализированный для языка mergetool aka diff встроенный в гуй — удобнее!
Коммиты непосредственно, либо с amend — ну опять же.
Reset soft/hard — без разницы, одинаково. Однако в гуе есть кроме них ещё парочка режимов.
Вот разные хитрые мержи-осьминоги, пуш в удалённую репу (чтоб точно знать, что запушилась только ветка, а не пачка локальных тэгов вдобавок); поиск бага с помощью bisect — оно да, из командной строки.
Но, к слову, эти действия совсем не относятся к "большинству"!

вот как раз таки пуш в удаленную репу надежнее в консоли
кто его знает, что гуй там отправит
mergetool и из консоли вызывается какой назначишь, так что разницы нет
даже в консоли универсальнее, гуй может и не позволять сменить mergetool, пользуйся тем который встроен, даже если он неудобен
то коммит в гуе удобнее, совсем не очевидно, там только просмотр изменений от гуя нужен, и то не всегда необходим
ну и все это в гуе еще найти надо, большинство мануалов о командах рассказывает, а как это в произвольном гуе вызвать, да еще с нужными параметрами, совсем не очевидно
и когда столкнешься с другим гуи, его заново изучать надо, а консоль везде одинакова

Про пуш я и написал, что надёжнее из консоли. Тут речь всё о локальной копии.


Mergetool — ключевое слово "если неудобен". На практике — вполне удобен, надобности в каком-то стороннем не возникает. Хотя вопрос удобства — этот как вопрос вкуса, о нём сложно спорить (лично мне текстовый как раз более неудобен).


Мануалы по командам — да, есть. Какие-то сложные действия проще сделать из консоли. Но как раз повседневные проще в гуе. Он не "произвольный", а однажды взятый, и не меняется. Речь же о комфорте повседневной работы, а не о героической борьбе с разными удалёнными консолями. Если есть IDE, которая устраивает, и в которой есть комфортная поддержка гита — почему бы им не пользоваться? Можно там же вызвать окно терминала и набрать команду руками, если это привычнее. Но если привычка как раз посередине между гуем и терминалом — не вижу смысла. Особенно для интерактивных команд, где надо что-то выбрать/выделить.

мне удобнее в консоли
пробовал гуи, чуть что в сторону и не найдешь как это сделать, или возможности вообще нет или она крайне ограниченна
и повседневное мне удобнее в консоли + difftool
и героическая борьба как раз происходит с гуи
Есть 2 вида плохих статей, первые рассказывают суть, но не рассказывают какие «кнопки нажимать», вторые рассказывают какие «кнопки нажимать», но не раскрывают суть действий.
Эта статья второго типа. Вообще не понятно что происходит с существующими коммитами и ветками, появляются ли новые коммиты, как меняются существующие.
Помню работал над одной задачей 2 часа, перейдя в консоль нечайно применил комманду git checkout — ., минут 20 просидел в поисках отмены этой команды, в итоге ничего не нашёл. Решил проблему с помощью IDE, ctr+z.

Эта команда, по сути, отменила изменения, которые и так не были под контроллем Git, поэтому и нет команды отмены. Хорошо, что файл открытый был в IDE и была история изменений :)

Ну я по своей наиности думал, что Гит универсальная штука которая может отменить комманды ранее введенные ))

Оригинал включает в себя ссылки на переводы на другие языки. Русскоязычных даже два. Зачем нужен третий перевод? :)

Sign up to leave a comment.