プロジェクトのバージョン管理システムをSVNからGitに移行することとなったのですが、
git cloneをし、プロジェクトを取得すると、シンボリックリンクだったファイルがただのテキストファイルに...!!
おかげでシンボリックリンクに指定されたファイルの中身を参照できていません。
この問題を解決すべく、いろいろと調べていたのですが、しっかりとした説明がされているサイトがなかなか見つからず、躓いてしまったので、ここに記しておきます。
今回問題解決に至るまでに参考にしたサイトはこちらです。
https://qiita.com/ucho/items/c5ea0beb8acf2f1e4772
上記のサイトでは、ツールをダウンロードし、権限の変更を行っていますが、windowsの標準のアプリから変更することができるので、そちらの方法で説明していきます。
解決方法
.gitconfigの設定が足りていない
git config --global core.symlinks true
シンボリックリンクをtrueにするために、このコマンドを実行する必要があったようです。
このコマンドを実行すると、.gitconfigに(通常はホームディレクトリに作成されています)
[user]
name = ユーザ名
email = メールアドレス
[core]
quotepath = false
symlinks = true
こんな感じで追記されます。
コマンドを実行しても追記されない場合は、直接編集しても問題ありません。
Windows一般ユーザにシンボリックリンク作成の権限が足りていない
この原因になかなか気づけませんでした。
CentOSとVagrantを使用し、サーバを立ち上げており、そのサーバからアクセスできるwindowsの部分。
そこでだけシンボリックリンクをcloneできず、他の場所ではシンボリックリンクをcloneできるという状態でした。
そこで、windowsの権限だとわかったのですが、そこからが長かった...。
権限を付与するために、Windowsの一般ユーザグループであるUsersにシンボリックリンク作成の権限を与えます。
以下手順。
まず、windows左下にある検索欄から「ローカルセキュリティーポリシー」と検索を行います。
これですね。
こいつを開くと、以下のような画面が表示されますので、
ローカルポリシー > ユーザ権限の割り当て > シンボリックリンクの作成
という順に押下します。
すると、こういった画面が表示されますが、通常は「Administrators」しか書かれていないと思います。
(Usersはいまから追加します。)
ユーザまたはグループを追加する を押下。
オブジェクトの種類 を押下。
初期状態では、「グループ」にチェックが入っていないと思うので、
チェックを入れてやり、OKを押下します。
選択するオブジェクトを入力してください の欄に
「Users」と入力し、OKを押下します。
これにて設定完了です。
この変更を反映させるには、一度サインアウトし、再度サインインする必要があるので、
Ctrl + Alt + Del を同時押しし、メニューからサインアウトを選択しましょう。