git

ポエム: gitはGUIでなくCUIをオススメする理由

  • POSTS
CUI vs GUI 「別にどっちつかってもgitの難しさは変わらないのでCUI使ったほうがよくない?」が私の意見です。 なぜなら、branch, push, pull, conflict, rebaseのあたりの概念理解のinterfaceに依らないからです。 変わるのはコマンド叩くかボタン押すかだけです。 じゃあなぜCUIを進めるのか 概念理解の速度が変わらないならGUIだっていいじゃないかと思うかもしれません。 CUIを進める理由は2つです 問題が発生したとき、原因の切り分けが難しい GUIクライアント特有のメタコマンドとgitのコマンドが紐付いていない場合がある 原因の切り分け? 例えば、GUI上でbranchをpushをしてエラーが発生した場合、原因は何でしょうか? GUI上で設定が漏れている? 単純にremoteに今のcommitよりも進んだbranchが既にpush済なのかも? CUI上でエラーが発生した場合、疑う箇所はgitのエラーだけです。GUI特有の問題かも?という懸念を捨てられます。 またGUI特有の問題は以下の理由により検索性が高くないです。 GUI特有のメタコマンド? revert という単語の意味は もとに戻す という意味です。 (これは一部想像も交じるし、そんなGUIクライアントは無いと思いますが、)もしもGUI上に revert stage というボタンがあった場合、「現在のstageにある変更をHEADと同一にする」という意味かもしれません( git reset . && git checkout . に相当) そして、gitには revert というコマンドがありますが、これは「あるcommitの打ち消しのcommitを作成する」というコマンドです。 GUI上でやっていた revert stage と git revert パッと見は似ていますが、動作はまるで違います。 このように、GUIではボタンにかかれている動作が、gitのコマンドそのものになっていない場合があります。 GUIでラップされてしまったボタンを覚えるよりも、CUIでgitのコマンドを覚えるほうがのちのち役に立ちますし、検索性も高いです。 結論 裏側でどんなコマンド走ってるのか、そのコマンドの意味を理解できている、調べればわかる人はGUIでもいいと思います。 最初に言ったとおりgitの難しさはCUIだろうがGUIだろうが変わらないので、それならgitそのものを学べるCUIがオススメという話でした。