如何将文件添加到 .gitignore 以及为什么忽略源树的文件后 .gitignore 文件内容不会改变?

如何将文件添加到 .gitignore 以及为什么忽略源树的文件后 .gitignore 文件内容不会改变?

我想忽略整个文件夹,因为我在文件夹中发现.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/

相关内容