Answers:
正如我在这篇文章中发现,.gitignore
仅适用于未跟踪的文件。如果将文件添加到存储库,则可以:
git update-index --assume-unchanged <file>
或通过以下方式将其从存储库中删除
git rm --cached <file>
编辑
本文也对此进行了解释
git status -- <file>
为您的文件显示“未暂缓提交更改”或“未跟踪的文件”?前者是如果您已经在索引中包含文件,并且我需要更多信息来解决您的问题(最好使用显示的git消息创建单独的问题,并在评论中发布指向它的链接)。后者适用于尚未由git跟踪(但尚未在.gitignore
文件中)并且可以自由添加到索引中的文件。
我也遇到过这个问题,这可能是因为您在初始提交流程中将被忽略的目录/文件添加到.gitignore之后,它们被GIT标记为“将被跟踪”。
因此,您需要像这样清除git跟踪缓存:
git rm --cached -r [folder/file name]
可以在此处阅读更详细的说明:http : //www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html
上面的命令还从远程GIT来源中删除了文件夹/文件的残余。因此,您的GIT仓库变得干净了。
我假设您不想添加tmp目录(Visual Studio Platform)
1-在您的本地.gitignore文件中添加以下行
## ignore tmp
/tmp/
./tmp/
3-备份和删除本地的tmp文件夹。(在其他地方备份。例如桌面?)
4-将更改提交到本地,而不是同步到远程(例如github)。
完成这些步骤后,您的tmp目录将不再上载。
以下步骤仅适用于未跟踪的文件。此信息适用于以下配置:
Platform: linux
Git version: git version 1.8.3.1
将要忽略的文件列表放在以下位置的“排除”文件中。
<path till .git directory>/.git/info/exclude
“排除”文件的初始内容
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
“排除”文件的最终内容
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
*.tar
*.gch
根据已接受的答案,您可以假定该文件未更改,因此您在本地计算机上所做的任何操作都不会提交到远程分支。
诸如git update-index --assume-unchanged src/main/resources/config.properties
src / main.resources / config.properties是在项目中查找该文件的路径的示例。
现在,如果要从存储库中完全删除文件,则可能要使用remove cached
`git rm --cached
此方案可能适用于以下情况:
假设我有一个存储密码的文件。我最初使用错误的详细信息提交了该文件,只是为了让我的同事在他们的计算机上拥有相同的文件。但是,现在我已在本地计算机上添加了正确的详细信息。如何防止使用现在正确的密码详细信息再次误提交该文件?