😥
Windowsでシンボリックリンクを作成する際に間違って絶対パスで作成してプッシュして、ローカル情報を漏洩しないようにする
Windows 11端末であるリポジトリでシンボリックリンクを作成しコミットしようとしたところ、シンボリックリンクの内容がC:\Users\xxxxx\Documents\your\projects\directory\src
の様に絶対パスで作成されてしまい、少しハマったので相対パスで作成する方法について備忘録を残しておきます。
(Mac使った方が良いんですかね......)
絶対パスでシンボリックリンクが作成されてしまう方法 - 1
PowerShellのNew-Item
を使う方法はダメでした。
New-Item -ItemType SymbolicLink -Path src\content -Target ..\..\content
実体は..\..\content
にあり、上記コマンドでsrc\content
にシンボリックリンクを作成することができますが、この方法だと絶対パスになってしまいます。
PowerShellのNew-Item
は内部的にWindows API(CreateSymbolicLink
)を使っており、相対パスであってもリンク作成時に絶対パスへ自動変換されるようです。
絶対パスでシンボリックリンクが作成されてしまう方法 - 2
Git Bashを使う方法もダメでした。
ln -s ../../content content
相対パスでシンボリックリンクを作成する方法
Windowsのcmd.exe
でmklink
を使う方法なら大丈夫でした。
※管理者権限
mklink /D content ..\..\content
成功すると下記の応答があります。
symbolic link created for content <<===>> ..\..\content
OS毎の地雷って面倒ですね......という学びでした。
Discussion