GitHubがMacとWindowsの両方にGUIアプリを提供しているとすると、コマンドラインからgitを使用することを学ぶことの利点は何ですか?
現在、Macアプリを使用してリポジトリを更新していますが、これまでのところ私のニーズを満たしているようです。何を見逃しているのでしょうか?
GitHubがMacとWindowsの両方にGUIアプリを提供しているとすると、コマンドラインからgitを使用することを学ぶことの利点は何ですか?
現在、Macアプリを使用してリポジトリを更新していますが、これまでのところ私のニーズを満たしているようです。何を見逃しているのでしょうか?
回答:
この質問は、「GUIの代替が存在するCLIをなぜ学ぶべきなのか」という特別なケースに過ぎないと思います。後者の質問はGUIとほぼ同じくらい古いと思うので、長年にわたって答えようとする試みが何度もあったと思います。私はこの質問に私自身の答えを通じて自分の道をバンブルしようとすることができますが、ニール・スティーヴンスンは、私は彼の驚くべきエッセイ10年以上前、「究極の答え」のように同意の関節...コマンドラインました初めに。
エッセイはコンピューティングの多くの側面に触れており、スティーブンソン自身もそれの多くは時代遅れであると考えていますが、エッセイはCLIがどのように優れたGUIであるかを文字通り私の人生を変えた非常に説得力のある方法で説明します。長い読み物(〜40ページ)ですが、あなたがここで尋ねたような質問をする人にはお勧めできません。
最後に、CLIとGUIのような質問には似たような方法で答えますが、あなたが尋ねることを選んだすべてのコンピューターのことから、私の答えはあなたの特定の質問に特に当てはまると思いますgit
。git
おそらく、スティーブンソンのエッセイで説明されているように、ホールホーイングの隠metaに本当にふさわしい、それほど長くないコンピューターツールのリストの中の最新のツールです。git
、他のいくつかのUnix的なものと同様に、CLI自体をすべて知っている理由です。時々その不規則な「磁器」にもかかわらず; 時々それのために。
はい、そうです、OSXの場合でもWebサイトだけでも、githubのGUIで間違いなく生産性を高めることができます。はい、実際には非常に洗練されており、サイトの機能を頻繁に使用しています。しかし、いいえ、あなたの右の小指がgit filter-branch
1つまたは2つの非常識なコマンドの上にぶら下がっているので、あなたはその神のような気持ちを持つことは決してありません。コンピューティングの経験から1つだけを守らなければならなかった場合、精神的な課題、午前2時にdatcenterで結ばれた親密な友情、登る能力の無限のはしご、ユーザーの生活に触れる、貴重なデータのPBを支配します仕事と快適な生活- 一つだけを保つ-それはその敬Godな気持ちでしょう。
すべてのニーズがカバーされていて、すごい、Gitを深く掘り下げる必要がなければ、実際に必要なものを学ぶのに時間を費やすことができます。
gitは単なるツールです。GUIアプリではできないことをする必要があるとき、それを知っているでしょう。github!= gitであることに注意してください。
ほとんどのCLIのみの機能は、誤ってリポジトリを奇妙な状態にして、それを修正したいときにのみ機能します。一方、リポジトリを奇妙な状態にする最も一般的な方法は、理解できない高度な機能を使用することです。GUIが提供するものに固執すれば、99%の時間でニーズに対応できます。
CLIを学習したいもう1つの理由は、それがgitの共通語であるということです。つまり、多くの人がさまざまなプラットフォームでさまざまなGUIを使用していますが、StackOverflowまたは他の場所で支援を求めた場合、答えはほとんどの場合CLIコマンドの形で出てくるでしょう。CLIがわからない場合は、ヘルプを取得するためのオプションがはるかに制限されます。
GUIアプリケーションは、手動の対話に依存して複雑な動作を実行します。これは、プロジェクトのセットアップや新しいものの開発に最適です。
コマンドラインインターフェイス(CLI)の利点は、自動化できる事前定義されたスクリプトを作成できることです。GitHubのGUIはすべて、git CLIを呼び出す素敵なグラフィックスと派手なボタンです。
GUIアプリがあなたのためにしないことは、毎日1:30 AMにサーバー上のレポのトランクを自動的に更新することですが、git CLIを呼び出すcronジョブはそれを設定する本当に簡単な方法です。
さらに、チーム内のプロジェクトで作業する場合、インストールスクリプトのセットアップ、スクリプトの構築、スクリプトの展開などが便利で、チームメイトは退屈な繰り返し作業の代わりに問題の解決に集中できます。
CLIが望ましいもう1つの理由は、ワークフローの問題です。多くのフレームワークは、コマンドラインを介して管理されます。CLIでgitを使用すると、プロジェクトとそのプロジェクトディレクトリに集中できます。たとえば、テストを実行してから、すべて同じインターフェイスと場所から新しい変更をコミットすることにします。
SVNからGitへの移行を支援するには、最近Gitを掘り下げなければなりません。そして、私が学んだことは、Gitコマンドラインツールは学ぶべき複雑な部分ではないということです。
Gitの背後にある概念とアイデアは複雑な部分です(そして、それはそれらがひどく設計されているからではなく、単に他の中央集中型VCSから来るほとんどの人々にとって異質だからです)。
概念を理解すると、実際のコマンドラインステートメントは比較的簡単になりました。つまり、UIはGitの理解に実際には役立ちません(最も単純な操作を除く)。
git
は非常に単純であるため、人々はそれらを理解することはできません-彼らはもっと難しいものを探しています。
コマンドラインgitを学ぶ1つの理由は、ほとんどのドキュメントがその環境向けに書かれていることです。また、「Xをgitでどのように実行しますか?」という質問をすると、答えにコマンドラインコマンドが含まれている可能性があります。
GUIとコマンドラインを使用する場合の主な問題の1つは、ほとんどの場合、プロセスを同じように制御できないことです。たとえば、GitHubアプリケーションは、多くのgitワークフローの使いやすさの点では優れていますが、高度なgitプロセスでは依然として扱いにくい場合があります。
例として、GitHubアプリケーションの使用方法を理解していないものをいくつか紹介します(注意すべきもう1つの点は、各GUIにも学習曲線があることです)。
最後に、CLIを使用すると、ユーザーはスクリプト作成時にこれらのツールを使用できます。
CLIがGUIよりも優れているケースを1つだけ学びました。これを説明するために、私は本のgitから例を取り上げました-皆のためのバージョン管理です。
イントラネットで共有したい場合は、次を使用できます。
裸のレポを作成する手順を見てください。
裸のリポジトリを作成するためのコマンドは、リポジトリを複製するために使用したものと同じです。ただし、-bareパラメーターは、すべての違いをもたらします。
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\
Bare_Workbench
コンソールで上記のコードを実行すると、一般的な共有フォルダーgeneric_shareにWorkbenchリポジトリのベアクローンが作成されます。
GUIを使用して既存のリポジトリからベアクローンを作成するのは簡単なプロセスです。あなたがする必要があるのは:
既存のリポジトリから.gitディレクトリをコピーし、repositoryの外部のdifferent_name.git(新しいベアリポジトリに付けたい名前)で貼り付けます。この例では、C:\ Users \ raviepic3 \ Desktop \にWorkbenchという名前の非ベアリポジトリがあり、その中にcontent.docxがあります。そして今、GUIを使用してこれから新しいベアリポジトリを作成したいと思います。C:\ Users \ raviepic3 \ Desktop \ Workbench.gitをコピーして、C:\ generic_share \ Bare_Workbench.gitとして貼り付けます。
config file
テキストエディタで内部のBare_Workbench.gitを開き、 bare = false
文字列falseをtrueに置き換えて置き換える行を見つけ ます。
保存して終了。
GUIでは、非常に多くのクリックを行い、どのファイルを編集するかを覚えておく必要があります。CLIでは、1つの簡単なコマンドですべてを実行できます。