web-dev-qa-db-ja.com

GitHub用のGUIアプリがあるのに、なぜgitを学ぶのですか?

GitHubが MacWindows の両方のGUIアプリを提供しているとすると、コマンドラインからgitを使用することを学ぶ利点は何ですか?

現在、私はMacアプリを使用してリポジトリを更新していますが、これまでのところ私のニーズをカバーしているようです。私は何を見逃しているのでしょうか?

86
histelheim

この質問は、「GUIの代替が存在するCLIをなぜ学習する必要があるのか​​」という特殊なケースにすぎないと思います。後者の質問はGUIと同じくらい古いものだと思います。何年にもわたってそれに答えようとする多くの試みがあったと思います。私はこの質問に対する自分の答えを通して自分の道をぶらつくことができますが、ニール・スティーブンソンは彼の驚くべきエッセイで10年以上前に私が同意することを「究極の答え」として明確に述べました 初めに...コマンドラインでした

エッセイはコンピューティングの多くの側面に触れていますが、スティーブンソン自身も 考える 今は時代遅れになっていると述べていますが、エッセイは、文字通り変更された非常に説得力のある方法で、CLIがより良いGUIになる方法を説明しています私の人生。長い読み物(40ページ程度)ですが、ここで質問したような質問をする人にはお勧めできません。

最後に、CLIとGUIのような種類の質問には同じように答えますが、gitについて質問することを選択したすべてのコンピューターの事柄から、私の答えは特定の質問に特に当てはまると思います。 gitは、Stephensonのエッセイで説明されているように、穴掘りのメタファーに本当に値する、それほど長くはないコンピュータツールリストの最新のツールであることは間違いありません。 gitは、他のいくつかのUnix風のものと同様に、CLI自体をすべて知る理由です。時々その不安定なにもかかわらず 'porcelain' ;時々それのために。

そう、そうです、あなたは間違いなくgithubのGUIで生産性を上げることができます。はい、実際には非常に洗練されています。サイトの機能を頻繁に使用しています。しかし、いいえ、あなたの右の小指が狂気のgit filter-branchコマンドの上に1つか2つのイオンをぶら下げているとき、あなたは決してその敬虔な気持ちを持つことはありません。私がコンピューティングの経験から1つだけを守らなければならない場合-精神的な課題、午前2時にデータセンターで形成された親密な友情、登る能力の無限のはしご、ユーザーの生活に触れ、貴重なデータのPBを支配する仕事と快適な生活-ただ1つのことを守ってください-それはその敬虔な気持ちでしょう。

118
Yaniv Aknin

あなたのすべてのニーズがカバーされていて、素晴らしい、gitを深く掘り下げる必要がない場合、あなたの時間は実際に必要なものを学ぶためによりよく費やされるでしょう。

gitは単なるツールであり、GUIアプリではできないことを実行する必要があるときに、それがわかります。 github!= gitであることに注意してください。

109
yannis

ほとんどのCLI専用機能は、リポジトリを誤って奇妙な状態にして修正したい場合にのみ機能します。一方、リポジトリを奇妙な状態にする最も一般的な方法は、理解できない高度な機能を使用することです。 GUIが提供するものに固執すれば、99%の時間でニーズをカバーできます。

CLIを学びたいもう1つの理由は、それがgitの共通語であるということです。つまり、多くの人がさまざまなプラットフォームでさまざまなGUIを使用していますが、StackOverflowなどで助けを求める場合、その答えはおそらくCLIコマンドの形で提供されます。 CLIがわからない場合、ヘルプを入手するためのオプションははるかに制限されます。

57
Karl Bielefeldt

GUIアプリケーションは、手動の対話に依存して複雑な動作を実行します。これは、プロジェクトの設定や新しいものの開発に最適です。

コマンドラインインターフェイス(CLI)の利点は、自動化できる事前に定義されたスクリプトを作成できることです。すべてのGitHubのGUIは、Git CLIを呼び出す、いくつかの素晴らしいグラフィックと豪華なボタンです。

GUIアプリしないが行うことは、サーバーのレポのトランクを毎日午前1:30に自動的に更新することですが、git CLIを呼び出すcronジョブは、それを設定する本当に簡単な方法ですアップ。

また、チームでプロジェクトに取り組む場合、インストールスクリプト、ビルドスクリプト、デプロイスクリプトなどを設定すると、チームメイトが面倒な反復的なタスクではなく問題の解決に集中できるようになります。

9
zzzzBov

CLIが望ましいもう1つの理由は、ワークフローの問題です。多くのフレームワークはコマンドラインを介して管理されます。 CLIでgitを使用すると、自分のプロジェクトとそのプロジェクトディレクトリに集中できます。たとえば、私はテストを実行してから、すべて同じインターフェイスと場所から新しい変更をコミットすることにしました。

6
Shigar Kenze

私は最近、SVNからGitへの移行を支援するために、本当にGitを掘り下げる必要があります。そして私が学んだことは、Gitコマンドラインツールはnotを学ぶのが複雑な部分であることです。

Gitの背後にある概念とアイデアは複雑な部分です(それは、それらが不適切に設計されているためではなく、単に他の中央集権化されたVCSから来たほとんどの人々にとって異質だからです)。

概念を理解すると、実際のコマンドラインステートメントは比較的簡単になりました。つまり、UIは実際には役に立ちません理解 Git(最も単純な操作を除く)。

5
Joachim Sauer

GUIアプリを取得できない環境にいる場合(ない場合)にCLIを知ることは役に立ちます。

考えられるシナリオの1つ:新しいツールをシステムに導入するのが煩わしくて長い、閉鎖された場所でプロジェクトを数日間手伝うように依頼されました。 CLIのみを使用します。もう一度すべてを学習する必要があるため、生産性が打撃を受けました。

4
grumpasaurus

コマンドラインgitを学ぶ1つの理由は、ほとんどのドキュメントがその環境向けに書かれていることです。また、「GitでXを実行するにはどうすればよいですか?」という質問をすると、答えにはコマンドラインコマンドが含まれる可能性があります。

2

GUIとコマンドラインの使用に関する主な問題の1つは、ほとんどの場合、プロセスを同じように制御できないことです。たとえば、GitHubアプリケーションは、多くのgitワークフローの使いやすさの点では優れていますが、高度なgitプロセスでは扱いにくい場合があります。

例として、GitHubアプリケーションを使用する方法がわからなかったいくつかの例を次に示します(別の注意点は、各GUIにも学習曲線があることです)。

  • コミットのリベース
  • 個別にプッシュ/プル/フェッチ(GitHubでは、それらは1つの「同期」コマンドにグループ化され、問題が発生する場合があります)
  • コミットの修正

最後に、CLIを使用すると、スクリプト作成時にこれらのツールを使用できます。

1
KLee1

Mac用のGitHubについては知りませんが、Windowsアプリは最も一般的なタスク(追加、コミット、プッシュ、プルなど)のみを実行します。git merge --no-ffなどのより複雑なタスクは、コマンドラインから実行する必要があります。

また、GUIが利用できない場合にgitを使用する場合があります。リモートサーバーにSSH接続する場合。

しかし、そうでなければ、GUIがあなたに必要なすべてを提供するなら、コマンドラインを学ぶことは時間の無駄かもしれません。私の仕事はWindowsのみの環境でTortoiseSVNを使用しており、SVNコマンドラインに一度も触れる必要がありませんでした。

0
ikh

私は、CLIがGUIよりも優れているケースを1つ学びました。これを説明するために、私は本git-みんなのためのバージョン管理-から例を取りました。

イントラネットを介して共有したい場合は、以下を使用できます。

  1. Gitoliteサーバー
  2. ベアリポジトリを持つ共通共有ディレクトリ

ベアリポジトリを作成する手順を確認してください。

CLIモードでのベアリポジトリの作成

ベアリポジトリを作成するコマンドは、-bareパラメータを除いて、リポジトリのクローンを作成するために使用したコマンドと同じです。 git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\ Bare_Workbench上記のコードをコンソールで実行すると、generic_shareと呼ばれる共通の共有フォルダーにWorkbenchリポジトリのベアクローンが作成されます。

GUIモードでのベアリポジトリの作成

GUIを使用して既存のリポジトリからベアクローンを作成するのは簡単なプロセスです。あなたがする必要があるのは:

  1. 既存のリポジトリーから.gitディレクトリーをコピーして、リポジトリーの外側に、別の名前.git(新しいベア・リポジトリーに付けたい名前)を貼り付けます。今回のケースでは、C:\ Users\raviepic3\Desktop \にWorkbenchと呼ばれる非ベアリポジトリがあり、その中にcontent.docxがあります。そして今、GUIを使用してこれから新しいベアリポジトリを作成したいと思います。 C:\ Users\raviepic3\Desktop\Workbench.gitをコピーして、C:\ generic_share\Bare_Workbench.gitとして貼り付けます。

  2. config file Bare_Workbench.git内でテキストエディターを使用して、bare = falseで、文字列falseをtrueに置き換えます。

  3. 保存して終了。

GUIでは、何回もクリックして、編集するファイルを覚えておかなければなりません。 CLIでは、1つの簡単なコマンドですべてを実行できます。

0
sid smith