title: Sharing git repo symlinks between Windows and WSL
body: <p>I have the following setup:</p>
  
  <ul>
  <li>WSL installed with Ubuntu, with git already installed there</li>
  <li>git installed from <a href="https://git-scm.com" rel="noreferrer">https://git-scm.com</a> on the Windows side</li>
  <li>Symlink creation enabled by turning on Developer Mode and adding my user to the correct policy group, as explained at <a href="https://github.com/git-for-windows/git/wiki/Symbolic-Links" rel="noreferrer">https://github.com/git-for-windows/git/wiki/Symbolic-Links</a></li>
  <li><code>core.symlinks=true</code> (due to above line)</li>
  <li><code>core.autocrlf=false</code> (I don't want git to do any cleverness, I'm sharing the repo between Windows and WSL)</li>
  </ul>
  
  <p>This <em>almost</em> works perfectly (very impressed). When I clone a repository, it is all okay in both Windows and WSL, apart from the symlinks on one of the two sides say they are modified but they are not. On both sides the symlinks <strong>work</strong> correctly, I can navigate them without issue.</p>
  
  <p>After an initial clone (on the Windows side), Windows PowerShell gives:</p>
  
  <pre><code>PS C:\Users\Matthew\Projects\...&gt; git status
  On branch master
  Your branch is up to date with 'origin/master'.
  
  nothing to commit, working tree clean
  </code></pre>
  
  <p>However on the WSL side, it says that the two symlinks are modified:</p>
  
  <pre><code>/mnt/c/Users/Matthew/Projects/...$ git status 
  On branch master 
  Your branch is up to date with 'origin/master'.
  
  Changes not staged for commit:
    (use "git add &lt;file&gt;..." to update what will be committed)
    (use "git checkout -- &lt;file&gt;..." to discard changes in working directory) 
  
          modified:   t/browser 
          modified:   web/jslib
  
  no changes added to commit
  </code></pre>
  
  <p>But git diff gives no output:</p>
  
  <pre><code>/mnt/c/Users/Matthew/Projects/...$ git diff
  /mnt/c/Users/Matthew/Projects/...$ 
  </code></pre>
  
  <p>If I then reset the checkout on the WSL side, it all switches round:</p>
  
  <pre><code>/mnt/c/Users/Matthew/Projects/...$ git reset --hard HEAD 
  HEAD is now at ......... Commit message here
  /mnt/c/Users/Matthew/Projects/...$ git status 
  On branch master 
  Your branch is up to date with 'origin/master'.
  
  nothing to commit, working tree clean
  </code></pre>
  
  <p>And back on Windows Powershell:</p>
  
  <pre><code>PS C:\Users\Matthew\Projects\...&gt; git status
  On branch master
  Your branch is up to date with 'origin/master'.
  
  Changes not staged for commit:
    (use "git add &lt;file&gt;..." to update what will be committed)
    (use "git checkout -- &lt;file&gt;..." to discard changes in working directory)
  
          modified:   t/browser
          modified:   web/jslib
  
  no changes added to commit (use "git add" and/or "git commit -a")
  PS C:\Users\Matthew\Projects\...&gt; git diff
  PS C:\Users\Matthew\Projects\...&gt; 
  </code></pre>
  
  <p>It seems like git is setting an internal flag that it then considers changed in the other system; is there any way to fix or work around this?</p>