ファイルやディレクトリへの参照を持つシンボリックリンクを、シェル拡張の Git クライアントソフト TortoiseGit を用いて、リポジトリへ追加・コミットする手順を紹介します。
追加されたリポジトリ内で、その項目がシンボリックリンクとして扱われていることを create mode から確認します。

※ TortoiseGit-2.17.0.2-64bit を使用します。
シンボリックリンクをステージングエリアに追加
例として、addons\gut シンボリックリンクを Git リポジトリに追加・コミットして、 Git リポジトリでシンボリックリンクとして扱われていることを確認します。
※ addons\gut シンボリックリンクは、サブモジュール third_party\Gut\ のアドオン部分 third_party\Gut\addons\gut\ にリンクしています。
シンボリックリンク(シンボリック・リンク、symbolic link、またはsymlink)は、ファイルやディレクトリへの参照を作成する特殊なファイルです。
Linux入門:シンボリックリンクの基本と活用術をわかりやすく解説してみた #Linuxコマンド – Qiita
Windows でシンボリックリンクを作成する手順については以下の記事を参照してください。
Git の作業ディレクトリ内に作成済みのシンボリックリンクを右クリックして表示されるメニュー「TortoiseGit」→「追加」を選択します。

TortoiseGit の追加のダイアログで、シンボリックリンクだけが表示されていることを確認して OK ボタンを押します。

以上で、 addons\gut シンボリックリンクがコミット対象を置くステージングエリアに追加されました。
※コミットするまでは、リポジトリには反映されません。
ステージングエリアの状態は、コマンドプロンプトで作業ディレクトリに移動してから git status コマンドを実行することで Changes to be commited: のリストで確認できます。
※ Windows 10 の場合、作業ディレクトリを開いたエクスプローラのアドレスバーに cmd⏎ で、そのフォルダを作業ディレクトリにしてコマンドプロンプトを起動できます。

G:\Dev\Godot4GD\SakuraCrowd\SakuraCrowdGodotLib>git status
On branch develop
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: addons/gut
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: third_party/Gut (modified content)
Untracked files:
(use "git add <file>..." to include in what will be committed)
addons/godot-git-plugin/
addons/my/
export_presets.cfg
icon.svg
icon.svg.import
project.godot
resource/
scene/
third_party/.gdignore
Displays paths that have differences between the index file and the current HEAD commit, paths that have differences between the working tree and the index file, and paths in the working tree that are not tracked by Git (and are not ignored by gitignore[5]).
インデックス ファイルと現在の HEAD コミットの間に差異があるパス、作業ツリーとインデックス ファイルの間に差異があるパス、Git によって追跡されない (そして gitignore[5] によって無視されない) 作業ツリー内のパスを表示します。
Git – git-status Documentation と Google 翻訳
シンボリックリンクの追加のコミット
引き続き、「コミット」ボタンを押して、シンボリックリンクの追加のコミットを行います。
※ OK で閉じた場合は、エクスプローラの右クリックで表示されるメニュー「Git コミット -> “ブランチ名”」を選択してください。

コミットのダイアログで下側の Changes made のリストにシンボリックリンク(例では1行目の addons/gut)にチェックをいれて、コミットのメッセージを入力してから「コミット」ボタンを押します。
※シンボリックリンク以外のコミットは行わないのでチェックを外しています。

シンボリックリンクの追加がリポジトリにコミットされました。
シンボリックリンクの確認
コミットのログには「create mode 120000 addons/gut」と表示されています。

[develop 5cecb7e] third_party/Gut/addons/gut フォルダにリンクした addons/gut シンボリックリンクを追加します。
1 file changed, 1 insertion(+)
create mode 120000 addons/gut
成功 (906 ms @ 2025/07/29 19:25:28)
120000 は、追加された項目がシンボリックリンクであることを示しています。
この例では、
Git – Gitオブジェクト100644
のモードを指定しています。これは、それが通常のファイルであることを意味します。 他に指定できるモードとしては、実行可能ファイルであることを意味する100755
や、シンボリックリンクであることを示す120000
があります。 このモードは通常の UNIX モードから取り入れた概念ですが、それほどの柔軟性はありません。Git中のファイル(ブロブ)に対しては、上記3つのモードのみが有効です(ディレクトリとサブモジュールに対しては他のモードも使用できます)。
エクスプローラでシンボリックリンクをダブルクリックすると、アドレスとしては、シンボリックリンクのある addons\gut\ フォルダに入りますが、実体はリンク先にあります。
ファイル・フォルダ構成をみると、そのリンク先である third_party\Gut\addons\gut と内容が一致しています。

Git リポジトリに追加・コミット後も dir コマンドの結果には symlink(シンボリックリンク)と表示されています。
G:\Dev\Godot4GD\SakuraCrowd\SakuraCrowdGodotLib\addons>dir
ドライブ G のボリューム ラベルは ボリューム です
ボリューム シリアル番号は 9691-AE5E です
G:\Dev\Godot4GD\SakuraCrowd\SakuraCrowdGodotLib\addons のディレクトリ
2025/07/27 13:48 <DIR> .
2025/07/27 13:48 <DIR> ..
2025/07/27 12:19 <DIR> godot-git-plugin
2025/07/27 13:48 <SYMLINKD> gut [..\third_party\Gut\addons\gut]
2025/04/15 19:22 <DIR> my
0 個のファイル 0 バイト
5 個のディレクトリ 2,427,887,140,864 バイトの空き領域
まとめ
ファイルやディレクトリへの参照を持つシンボリックリンクを、シェル拡張の Git クライアントソフト TortoiseGit を用いて、リポジトリへ追加・コミットする手順を紹介します。
追加されたリポジトリ内で、その項目がシンボリックリンクとして扱われていることを create mode から確認します。
参照サイト Thank You!
- Git
- Git – git-status Documentation
- Git – Gitオブジェクト
- Git – サブモジュール
- Linux入門:シンボリックリンクの基本と活用術をわかりやすく解説してみた #Linuxコマンド – Qiita
- TortoiseGit – Windows Shell Interface to Git
記事一覧 → Compota-Soft-Press
コメント