Git拒绝忽略符号链接



我有一个符号链接,指向git repo中一个子文件夹base中的一个文件夹。我已经跟踪并上传了这个符号链接(它被视为git2中的文件(到我的repo,这就是为什么即使我调整我的.gitignore以包含这个文件夹,它仍然会跟踪它。要解决这个问题,你通常会运行git rm --cached <file-name>1

我已经转到base所在的目录,并尝试过:

git rm --cached base

然而,我得到:

fatal: pathspec 'base' did not match any files

我也尝试过,但得到了相同的错误:

git rm --cached ./base

它是一个符号链接,因此没有拖尾/必要,但它不起作用。

我的问题是,如何删除git中的符号链接?

[1] 如何制作Git"忘记";关于一个被跟踪但现在在.gitignore中的文件?[2] 如何使Git忽略符号链接?

我不知道为什么它不起作用,但它实际上并不重要,因为有一个简单的解决方案:

  1. 将文件保存在回购之外。(或者以后愿意重新制作。(
  2. 手动删除文件并提交
  3. 如果你还没有这样做,请更新你的.gitignore以忽略该文件。如果您还没有提交.gitignore更改,请考虑将其包含在上一次提交中,以便更清楚地了解它被删除的原因
  4. 将文件放回(或重新创建(

最终结果应该与git rm --cached <file>执行了您期望的操作(并且您提交了该操作(相同。

注意:无论你是按照我的建议,还是使用git rm --cached,对于其他人来说,当他们收到你的更改时,文件都会被删除。如果他们愿意,你需要指导他们如何取回。

最新更新