GodotEngine4 用の自作アドオンを開発するために、利用者が res://adddons フォルダなどに配置するアドオン部分 (ScUtil) と、それを開発するプロジェクト部分 (ScUtilDev) の2つの Git リポジトリを作成し、それらを Git サブモジュールで連携してバージョン管理する構成を作成します。
※基本的に Git 操作は、シェル拡張でエクスプローラ上で操作できる Git クライアントソフト TortoiseGit を用い、一部はコマンドプロンプトで直接 Git コマンドを使用します。
※ Git-2.49.0 (64 bit) を使用します。
※ TortoiseGit-2.17.0.2-64bit を使用します。


パート2では、自作アドオン用のリモートリポジトリ(例:sc-util)を PC 内に作成して、前回作成したアドオン用のローカルリポジトリ(例:ScUtil)のコミット内容をプッシュします。
今回作成する sc-util リモートリポジトリは、アドオン利用者のプロジェクトで利用したり、アドオン自体を開発するプロジェクトでテストから呼び出せるように、各プロジェクトのサブフォルダにサブモジュールとして配置されるもとになります。
前回の記事
自作アドオン用のリモートリポジトリを PC 内に作成
フォルダ(例:sc-util.git)を新規作成して、そこに自作アドオン用のリモートリポジトリを作成します。
※リモートリポジトリ(Bare リポジトリ)を作成する場合は、ローカルリポジトリ(ノンベアリポジトリ)と区別しやすいように名前の最後に .git をつける慣例があるようです。
TortoiseGit の場合は、リモートリポジトリを作成する空のフォルダをエクスプローラで開いて、右クリックで表示されるメニュー「Git ここにリポジトリを作成」を選択します。

前回、ファイルを直接編集できる作業ディレクトリを持つローカルリポジトリ(ノンベアリポジトリ)を作成した場合はチェックしなかった、「Bare を生成」チェックボックスにチェックをして OK ボタンを押します。

ローカルリポジトリの .git フォルダ内に似た構成のリモートリポジトリ用のフォルダ・ファイルが作成されました。
OK ボタンでダイアログを閉じます。

Bare リポジトリとノンベアリポジトリ(記事内では通常はリポジトリ、ローカルリポジトリと記載)については、以下の記事を参照してください。
ローカルリポジトリのコミットをリモートリポジトリにプッシュ
作成したリモートリポジトリへ、ローカルリポジトリで追加したファイルのコミットオブジェクトをプッシュします。
Updates remote refs using local refs, while sending objects necessary to complete the given refs.
ローカル参照を使用してリモート参照を更新し、指定された参照を完了するために必要なオブジェクトを送信します。
Git – git-push Documentation と Google 翻訳
TortoiseGit の場合は、ローカルリポジトリのフォルダをエクスプローラで開いて、右クリックで表示されるメニュー「TortoiseGit」→「プッシュ」を選択します。
※コマンドプロンプトで git push コマンドを用いてプッシュすることもできます。

ローカルリポジトリの作成とファイルのコミットについては、パート1の記事を参照してください。
「プッシュ」ダイアログでは、プッシュ先のリモートリポジトリやブランチを選択します。
最初はリモートリポジトリが設定に追加されていないので、「宛先」枠の「管理」ボタンを押して表示される「設定」ダイアログの「Git -> リモート」ページで、プッシュ先のリモートリポジトリを設定に追加します。
「設定」ダイアログの「Git -> リモート」ページで、「URL」テキストボックスに、リモートリポジトリのフォルダのパスを入力します。
※ GitHub.com などのサーバにある場合は、そのリポジトリの https などから始まる URL を指定します。
「リモート」テキストボックスに、そのプッシュ先の名前(例:origin)を入力して「新規追加 / 保存」ボタンを押すと、左側の「リモート」リストにその名前が追加されます。
「設定」ダイアログを OK ボタンで閉じて、「プッシュ」ダイアログの設定に戻ります。

「Ref」 枠では、プッシュする元のローカルリポジトリ内のブランチ名(例:develop)と、プッシュする先のリモートリポジトリ内のブランチ名(例:develop)を指定します。
※リモートリポジトリにそのブランチ名がない場合は作成されます。
「宛先」枠では、「リモート」ラジオボタンを選択して、リストから先ほど設定に追加したプッシュ先のリモートの名前(例:origin)選択します。
オプションでデフォルトでチェックが入っていた「Putty 鍵の自動ロード」と「上流/追跡対象のリモートブランチに設定」は今回は使用しないのでチェックを外しました。
「プッシュ」ダイアログの設定が済んだら OK ボタンを押します。

リモートリポジトリへのプッシュが完了しました。

git.exe push --progress -- "origin" develop:develop
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 20.05 KiB | 30.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To G:/Dev/Godot4GD/SakuraCrowd/ScLibProject/remote/sc-util.git
* [new branch] develop -> develop
成功 (1266 ms @ 2025/09/07 13:20:19)
プッシュしたコミットと作成されたブランチの確認
ローカルリポジトリからリモートリポジトリにプッシュした、コミットオブジェクトや、プッシュによって作成されたブランチを確認します。
TortoiseGit の場合は、リモートリポジトリのフォルダをエクスプローラで開いて、右クリックで表示されるメニュー「TortoiseGit」→「ref ブラウザ」を選択します。

「最後のコミット」のメッセージが、パート1でローカルリポジトリにコミットした際のメッセージであることが確認できました。
また、リモートリポジトリへの初回プッシュで作成されたブランチ名が指定した名前(例:develop)であることも確認できました。

まとめ
- TortoiseGit を用いて、PC 内にリモートリポジトリ(Bare リポジトリ)を作成しました。
- TortoiseGit を用いて、ローカルリポジトリの指定したブランチのコミットオブジェクトを、リモートリポジトリにプッシュして同時にブランチも作成しました。
- TortoiseGit の ref ブラウザを用いて、リモートリポジトリのブランチと最後のコミットのメッセージからプッシュが成功したことを確認しました。
参照サイト Thank You!
- Git
- Git – サブモジュール
- Git – git-push Documentation
- TortoiseGit – Windows Shell Interface to Git
- Godot Engine – 無料でオープンソースの2D・3Dゲームエンジン
記事一覧 → Compota-Soft-Press
コメント