2 台のマシン (A と B など) から作業している git リポジトリにいくつかのシンボリック リンクがあります。どちらも Linux を実行しますが、B は VirtualBox を介して実行され、ファイル システムは Win7 ホスト システムから共有されます。したがって、B はシンボリック リンクをサポートしません。
BI でいくつかの作業を行っているときに、私の場合、シンボリック リンクを使用するのは悪い考えであることに気付きました。そのため、BI はすべてのターゲットをコピーして、「シンボリック リンク」を上書きしました。次に、これをコミットし、中央リポジトリにプッシュしてから、A にプルします。
問題は、ファイルにシンボリックリンクのアクセス許可が付与されている A にありますが、ファイルの内容には問題があります。たとえば、元のファイルが「Lorem ipsum dolor sit amet ...」を含むテキスト ファイルであった場合、シンボリック リンクは無意味なパス「Lorem ipsum dolor sit amet ...」を指し、そのファイル操作はすべて失敗します。 .
例 (まず、foo.png は ../bar.png へのシンボリック リンクであり、どちらもリポジトリにあります):
user@B> cat foo.png
../bar.png
user@B> cp ../bar.png ./foo.png
user@B> git add foo.png
user@B> git commit -m "Removed symlink"
user@B> git push
...
user@A> git pull
user@A> ls -l foo.png
lrwxrwxrwx 1 user user 8 2012-06-22 15:13 foo.png -> ?PNG????
user@A> git status foo.png
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo.png
#
ファイルから symlink フラグを削除する方法や、通常のファイルとしてチェックアウトする方法がわかりませんでした。誰かが助けてくれることを願っています。