質問: ### 質問内容:開発者がソースコードの変更履歴管理を行う管理システムは多数ありますが、それには対応したクライアントが必要です。Linux向けで使用できる有名なコマンドラインツールを1つあげてください。 これに対する回答が分からず、そもそも問題の意図もよくわかっていません。 コマンドラインツール等も調べたのですが、いまいち何を指しているのかがよくわかっていません。 単純に、Gitという回答なんでしょうか? 質問の意図や、それに対応する回答をご教授いただけますと幸いです。
回答: オフトピなのでマイナス評価(-5点で表示から消される)しておきますが、 ITエンジニアに進むということで回答しておきます その代わり、自分が詳しくなったら、答えられそうな質問には答えて貢献してください。 > > 単純に、Gitという回答なんでしょうか? > > > Gitは模範解答の一つでしょう。 これだけGitが流行った現状これといった対抗馬がありません。 まぁ、回答の選択肢自体は探せば大量に出てきます。 参考記事: バージョン管理システムの一覧 - Wikipedia これらを合わせて確認すると、 もしかするとクライアントサーバーモデルの中から選ばなければならない引っ掛け問題? でもまぁ18歳やそこらのまだろくに勉強してない大学生が Gitを差し置いてSVNやCVSの過去に流行ったクラサバモデルを スラスラ答えるのは違和感すごいです。 私が教授ならお前歳ごまかしてるやろって言います。 また、設問に「Linux向け」とありますので、 特定の環境で囲い込んでいるマイクロソフト社製品を答えるのもダメでしょう。 この辺の裏の事情まで踏まえるとGit一択ではないかと感じます。 > > 開発者がソースコードの変更履歴管理を行う管理システムは多数ありますが、 > > それには対応したクライアントが必要です。 > > Linux向けで使用できる有名なコマンドラインツールを1つあげてください。 > > > 分からないのは「クライアント」と「コマンドラインツール」の部分ですね。 この2つについて解説していきます。 クライアントは直訳すると「依頼人・顧客」を指します。 対義語は顧客にサービスを提供する「サーバー」となります。 Gitってローカルで各自が勝手に世代管理を行いますので、 クラサバ方式か?と聞かれれば語弊があります。 ただGitにはGitHubと連携する機能も含まれており、 Git自体もクライアントではありますしGitHubはサーバというのは間違いではありません。 SVNやCVS何かの過去の世代管理を行うツールはクラサバ方式が多く、 これらはサーバマシンが無ければ何も出来ません。 手元のコマンドラインツールはサーバに「世代管理してください」と要求するだけですので、 これらはまごうことなきクライアントです。 コマンドラインツールはCLI向けのツールを指します。 CLIとはなんぞや?となるかと思いますので、 CLIを語る上で欠かせない、GUIとCLIから解説します。 世間一般の人(恐らく質問者さんも)が「パソコンの画面」と言われると、 グラフィカルな画面でマウスやトラックパッドで多くの操作を行う事を想像するでしょう。 これをGUI(グラフィカルユーザーインタフェース)と呼びます。 (iPhoneやAndroidもこの分類) GUIは1990年に登場したWindows3.1あたりでメジャーになりましたが、 コンピュータ自体はそれより昔から続く長い歴史があります。 GUIが流行るまでの時代は黒い画面に文字列だけ表示されて キーボードでタイピングしながら指示を出すCLI(コマンドラインインタフェース)が主流でした。 最新のWindowsやMacにもコマンドプロンプトやターミナル等のソフトが内蔵されており、 その気があればCLIでシステムを操作することが可能です。 誰でもマウスやトラックパッドでパソコンを操作出来るGUIは一見とっつきやすいのですが、 視覚情報を頼りに指先でマウスやトラックパッドを操作してカーソルを動かすので、 パソコンど素人を越えた過ぎても、PCを自在に操って効率を出す事は中々出来ません。 「はい、GUI操作を楽にするために便利なもの作って」と言われてもすぐには思いつかないと思います。 逆にCLIは普段から使っているコマンドを5個1セットに固めたりという事が楽にできます。 「うおー、これらコマンドをループで固めて1コマンドで終わるようにしたった!超天才www」 こういったズルがしやすい、拡張しやすい作りになっています。 一概にCLIは古臭い「おじいちゃん用のシステム」とバカに出来ない側面があります。 単純にタイピング速度が速ければ速い程、操作スピードが上がりますので 「1人の優れたエンジニアは並のエンジニア100人分の働きをする」逸話はあながち間違いでもありません。 要するに、GUIよりCLIのがちょっと便利なツールを簡単に作れるよって話です。 なのでCLIの世界では前人達が作ったちょっと便利な「コマンドラインツール」が豊富にあり Gitなんかもその「コマンドラインツール」の一つです。 SourceTreeといった 裏側ではコマンドラインツールのGitを利用してるけど、 それに画面を付けて気軽にGitの良さを引き出せるようにしたGUIのツールも存在します。 (そんなに便利なものがCLIで出来たらGUIにも移植したいという発想はまぁそうだよね)