![如何将文件添加到 .gitignore 以及为什么忽略源树的文件后 .gitignore 文件内容不会改变?](https://linux22.com/image/1595353/%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%88%B0%20.gitignore%20%E4%BB%A5%E5%8F%8A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BF%BD%E7%95%A5%E6%BA%90%E6%A0%91%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8E%20.gitignore%20%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%E4%B8%8D%E4%BC%9A%E6%94%B9%E5%8F%98%EF%BC%9F.png)
我想忽略整个文件夹,因为我在文件夹中发现.vs
锁定/权限被拒绝错误,所以我使用这个 bash 命令创建了一个文件:sqlite3/db.lock
.vs
.gitignore
touch .gitignore
然后在 .gitignore 文件中添加此行:
.vs/*
但是当我运行时仍然出现同样的错误git add --all
。
最后,我打开了 Sourcetree 应用程序,.vs
通过右键单击文件并选择忽略来忽略文件夹内容,然后我设法添加所有文件、提交和推送(通过 Sourcetree 应用程序)。
对这个解决方案不满意,因为我想通过命令行完成所有操作。现在我想知道为什么如果我通过 Sourcetree 操作了 gitignore 内容,它却没有改变?我该如何将文件添加到.gitignore
?我所做的似乎没有任何效果(事实上我添加了行.vs/*
)
答案1
你所做的事情产生了影响。也就是说,所有未来更改将被忽略。
这里的问题是,当你添加文件时,.gitignore
它们将被忽略你所做的任何更改,但它们仍将保留在存储库中。你需要做的是从 git 中删除所有内容,然后再次添加它们。这样,你想要忽略的文件就不会被添加。
您可以使用以下命令执行此操作:
git rm -r --cached .
git add .
git commit -m ".gitignore fix"
参考:http://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/