Git (ギット)とは?

一言で言えば、ゲームのセーブ機能 のようなものです。 失敗したら最初からやり直し…なんてことにならないよう、快適に開発を進めるための機能を提供してくれます。

  • Commit (コミット)

    • アクションゲームの「セーブポイント」のような機能です。
    • 好きなタイミングでセーブ(コミット)しておけば、その先の作業でプログラムが壊れてしまっても、確実に動いていたその場所まで時間を巻き戻してやり直すことができます。
  • Branch(ブランチ)

    • ゲームの「分岐ルート」や「並行世界」を作る機能です。
    • メインのファイルには影響を与えずに、コピーした世界(ブランチ)で新しい機能を安全に試すことができます。
    • ゲームと違うのは、ブランチでうまくいった変更点(差分)だけを、後からメインの世界に統合(マージ)できる点です。

GitHub (ギットハブ) とは?

Gitで保存したデータを置いておく 「巨大な倉庫(クラウドストレージ)」 です。

世界中の開発者が自分の作ったプログラム(ComfyUIのカスタムノードなど)をここにアップロードして公開しています。 一般的に「カスタムノードを入れる」という行為は、この「GitHubという倉庫から、自分のPCへファイルをコピーしてくる」ことを指します。

また、GitHubはSNSのような側面も持っています。 プログラムに不具合があったときに報告したり(Issue)、新しい機能をリクエストしたりして、開発者と利用者がコミュニケーションを取る場にもなっています。


最低限覚えたいコマンド

  • git clone (クローン)

    • 基本的には「GitHubにあるプログラムを、丸ごと自分のPCにダウンロードする機能」という理解で大丈夫です。
    • ただし、単なるZipファイルのダウンロードとは異なり、リポジトリとの繋がりを維持したまま 手元にコピーを持ってくる点が重要です。この「繋がり」があるおかげで、次の pull が可能になります。
  • git pull (プル)

    • git clone した後も、開発者はソフトウェアの改善や機能追加をし続けるため、自分の環境にあるプログラムは次第に古くなっていきます。
    • git pull を実行すると、GitHubにある最新の状態と自分のPCの中身を比較し、変更があった部分だけをダウンロードして更新してくれます。
    • 実質的な「アップデート」コマンドと考えて良いでしょう。

ComfyUI Managerの正体

よく使う ComfyUI Manager は、裏でこの git clonegit pull を自動で代行してくれているツールです。

  • Install: 裏で git clone が走っています。
    • (同時に pip install などを行い、必要なライブラリの準備もしてくれます)
  • Update: 裏で git pull が走っています。