
今後カスタムノードとか拡張機能とか作れたらいいなと思って公開用のGithubを作りました。
主にAI開発で作った簡単なツールや拡張機能などを公開していく予定です。

私自身初心者なのでgithubってなに?どんなことできるの?的なことを調べて自分なりにまとめてみました。
なお、Githubは元々gitで管理しているリポジトリを共有するために作られたそうです。
なのでgitとセットで解説されることが多いのですが、gitと分けた方が分かりやすい気がしたので、今回はgithubを直接操作する方法で紹介します。
・gitはこちら

Githubとは?
GitHubは、ソフトウェア開発で使われるファイルやコードをオンライン上で管理・公開できるサービスです。
生成AI触ってる人だとComfyUIとかSDWebUIとか、カスタムノードとか拡張機能とか使ったことがあると思います。
ああいうのを作って公開したり、第三者は利用したり、開発手伝ったり、フィードバック送ったりみたいなことが可能です。
また冒頭で書いた通り、元々gitで管理していたものを共有・公開するためにGithubが作られたそうなので、基本はgitから操作するのが一般的なようです。

Githubアカウントの作成
以下のリンクにアクセスして右上の「Sign up」をクリックします。

GoogleかAppleアカウント、またはメールアドレスで登録が可能です。

私はGoogleで連携しました。
連携後、Username(ユーザー名)、Your Country/Region(国)、Email preferences(お知らせ受け取りの有無)を決めて、create accountをクリックします。

次に簡単なパズルをやる必要があります。
上が画面上で操作、下が音声で確認するもの。

パズルが終わるとdashboardに移動するので、これでアカウント作成は完了です。
Githubにリポジトリを作成
リポジトリは自分が作ったコードやファイルを置く場所のことです。
左上にcreate repositoryがあるのでそれをクリック。

次にリポジトリ名や公開設定などを決めていきます。

- Repository name:リポジトリの名前
- Description:リポジトリの説明
- Choose visibility:リポジトリの公開設定Public:一般公開
- Private:自分だけ、または招待した人だけ閲覧可能
Add README:README.md を自動で作成するかどうか
Add .gitignore:Git を使うときに追跡しないファイルを定義
Add license:公開したコードのライセンス
Create repository:設定した内容でリポジトリを作成
これでリポジトリの作成は完了です。
Githubのリポジトリにファイル・フォルダを作る
今回サンプルとしてomikuji-guiのリポジトリを作ってみました。

ここにコードやファイルを置いて第三者が使えるようにします。
ファイルは、Add fileから作成可能です。

- Create new file:リポジトリ上でファイル作成
- Upload files:ローカルからアップロード
Create new fileで進めるとこんな画面になるので、ファイル名とその中身を入力していきます。
ファイル名は拡張子も必要です。

もしフォルダを作ってその中に何らかのファイルを置きたい場合は、フォルダ名入力後、スラッシュを打てば自動でフォルダが作成されます。
例)sample/を入力した場合

入力が終わったらCtrl+Sか、右上のCommit changesをクリック。

次にどんな変更をしたか説明書いたり、別のブランチにコミット(記録・保存)させたりができます。
特になければそのまま右下のCommit changesでOKです。

これでリポジトリにomikuji_gui.pyを作れました。

あとは同じ要領で必要なファイルを作成していきます。

ファイルの修正
ファイルを修正したい場合はそのファイルをクリックして、Edit this fileから修正できます。

コードを直接修正できるので、修正後は作成と同じくCommit changesで反映させてください。
またどこをどう変更したかはファイルページのHistoryから確認可能です。

こんな感じで前のコードとの差分(diff)を確認できます。
赤=削除 緑=追加

AIに作って貰ったのですが、PySimpleGUIはMITで公開できなかったり、日本語の文字化けやpipの警告とかが出たりしたので、その辺りを修正しました。
ファイル/フォルダを削除する
削除したい場合は、ファイルページの右上にある三点リーダメニューからdelete file、またはdelete directoryで削除できます。
folderの場合は中のファイルも削除されるので注意してください。

あとはファイル作成/修正と同じくCommit changesをクリックすれば削除ができます。
ローカルで実行してみる
このリポジトリをローカルに落として実際に実行してみます。
gitインストールしてる方はクローンできます。
git clone https://github.com/aiai-r/omikuji-gui.gitgit入れてない方はCode→Download ZIPで落として展開すれば使えます。

install.batで仮想環境作り、requirements.txtをインストール。
run.batで仮想環境アクティベート、omikuji_gui.pyを実行します。
PySideで作ったおみくじGUIを表示できました。
処理も問題なさそうです。

ブランチを作成する
ブランチはリポジトリ内の独立した開発ラインのことです。
例えば上記のファイルはmainブランチにそのまま置いてます。
ただmainブランチに干渉させず、機能追加や修正を行いたいときがあります。
そういうときは新しいブランチで分岐させて変更が可能です。
新しいブランチを作る場合は、Branchをクリック。

右上のNew brachをクリック。

そうするとブランチ名とソースとなるブランチを指定できるので、設定してCreate new brachをクリックします。

これでブランチを切り替えられるようになります。

プルリクエスト/マージする
新しいブランチで機能追加や修正が終わったら、プルリクエスト作成→マージという手順で変更を適用できます。
まずsampleブランチに切り替えて、結果ごとに文字色を変更するコードを追加しました。
# ★★★ ここからが中心的な機能追加 ★★★
# 結果に応じて文字色を変更する
if fortune == "大吉":
color = "red"
elif fortune == "凶":
color = "blue"
else:
color = "black" # それ以外は黒
# スタイルシートを使って色と太さを設定
self.result_label_content.setStyleSheet(f"color: {color}; font-weight: bold;")
# ★★★ ここまで ★★★新しいブランチで変更を行ってからPull requestsタブに行くと、変更を適用するためのプルリクエスト作成ボタンが表示されます。
そのままCompare & pull requestをクリックでOKです。

ブランチごとにファイルの差分(diif)などが表示されるので、問題なければbaseが取り込む先のブランチ、compareが変更元のブランチになってるのを確認してCreate pull requestでプルリクエストを作成します。

あとはMerge pull requestをクリックすれば、sampleで変更した内容をmainにマージできます。

実際に確認するとちゃんと反映できてました。

こんな感じでブランチを分けて作業すると、元のラインに干渉せず安全に作業が行えます。
あとブランチは修正や変更だけじゃなくそれぞれ独立させて、別のツールとして使えるようなリポジトリもあります。
sd-scripts/sd3とかsd-webui-forge-classic/neoとかが多分そんな感じです。

リポジトリを削除する
リポジトリそのものを削除したい場合は、settingsタブを開きます。

一番下の方に行くとdelete this repositoryがあるのでそれをクリック。

確認画面がでるのでI want to delete~をクリック。

再度確認画面がでるので問題なければI have~をクリック。

最後にリポジトリ名を入力してdelete this repositoryをクリックすれば削除できます。

Githubを使うメリットは?
コミットごとに履歴を残せる(バージョン管理)
Github上でコードを修正してコミットすると、その時点のコードの状態を記録できます。
gitのバージョン管理システムと呼ばれるものがこれで、何らかの問題が発生しても前の状態に戻すことが可能です。
なのでいろいろ開発するのに安全な環境で実行できるというのがメリットの一つです。
フィードバックを貰える
誰かが利用してくれることで、自分で気づけなかった問題などに気づける可能性があります。
人気のあるリポジトリだと日々issuesタブでバグが報告されたり、Discussionsタブで何らかの議論が行われたりしてます。
※ComfyUIのIssues Issues · comfyanonymous/ComfyUI
こういうのを貰えると問題の早期発見もそうだし、新しいアイディアが生まれたりもするので、コードの改善・改良につながったりします。
開発を手伝って貰える(プルリクエスト)
上記では自分でやりましたが、第三者の方が送ってくれる場合もあります。
実際にマージするかどうかはテストしてから自分で決められるし、githubには自動でコードをチェックしてくれる機能もあるようです。
誰かが開発の協力してくれることで、プロジェクトの開発・改良・改善につなげられる可能性があります。
AIエージェントが使える
githubにはgithub copilotというAI コーディング アシスタントを使えるものがあります。
リポジトリを指定してGithub上のコードを修正・変更依頼したり、普通に相談したり。

なので、AI開発やバイブコーディングみたいなことをやりたい方は、git使わなくてもある程度対応できるかもしれません。
ChatGPTのplusプラン以上でcodexも使えます。

ユーザーから支援(寄付)を受けられる仕組みがある
githubには「GitHub Sponsors」という公式の寄付・スポンサー機能があります。
また外部サイト(Buy Me a Coffee, Ko-fiなど)を経由して支援を受け取ることも可能です。
単純に支援してもらえると開発のモチベーション維持や継続につながったりします。
いろいろ練習できる
プライベートリポジトリを設定できるので、コードの修正などはもちろんgithubの操作もこっそり練習できます。
Issue立ててみるとか、ブランチ作ってみるとか、プルリクエスト作成してマージしてみるとか、codex使ってみるとか。
失敗しても誰にもバレないので安心です。
あとローカルにgitインストールして連携すればgitとgithub間の操作も練習できます。
利用するだけの人でも実際に触ると学べることが結構あるので、興味ある方は使ってみてください。
以上githubの使い方を紹介しました。

