如何让Windows上的Git忽略符号链接

时间:2012-07-30 20:13:01

标签: windows git symlink gitignore

我无法让这个工作。

我克隆了一个包含虚拟文件(名为src)的存储库:/path/src

在Windows上我创建了一个符号链接:mklink -d /path/src /otherplace/src(但我当然必须先删除虚拟src文件)。
我的.gitignore.git/info/exclude都有

/path/src/ 
/path/src 
path/src/
path/src

我试过了

git ls-files -s | gawk '/120000/{print $4}'

git update-index path/src/ --assume-unchanged

但我仍然得到:

error: readlink("path/src"): Function not implemented
error: unable to index file path/src   
fatal: updating files failed

我已经尝试了所有these other suggestions。甚至this doesn't work 有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您可以执行结帐,忽略此单个文件,如下所示:

git checkout HEAD . --no path/src

.gitignore文件仅适用于向索引添加内容。 .gitignore之前提交的文件,也不会被忽略。

答案 1 :(得分:1)

我知道这很晚,但是我遇到了这个问题。

就我而言,我显然已经签入了我的符号链接。因此,无论我做什么,.gitignore都行不通(我想这就是亚历山大的意思)。

修复:

  1. 删除所有符号链接
  2. 看看git现在是否认为有删除的文件要提交。
  3. 如果是这样,请继续并执行删除操作。

现在,您可以重新添加符号链接,.gitignore应该可以正常工作。

答案 2 :(得分:0)

以下是我针对此问题的步骤,类似,但与其他答案略有不同。

假设我有一个文件夹 .fvm 包含 file.jsonflutter_sdk(link),它们之前都在 git 中提交过,那么我想忽略 flutter_sdk

  1. .fvm/flutter_sdk 中添加 .fvm/flutter_sdk/.gitignore
  2. .fvm/flutter_sdk 剪切到存储库以外的其他位置。
  3. git add .git commit ....
  4. 粘贴回链接。