我想阻止Git在git status
中显示被忽略的文件,因为在已更改但未更新的文件列表中包含大量文档和配置文件,会使列表中的一半 - 无用的。
Git显示这些文件是否正常?
我将忽略信息放在Git存储库根目录下的.gitignore
文件中,并且在使用git add .
时不会添加它们,但似乎它们也没有被完全忽略,因为它们显示在上述列表中,不显示在git ls-files --others -i --exclude-standard
打印的列表中。只有与~/.gitignore
中的模式匹配的文件才会显示在那里。
难道是因为在早期阶段我没有忽略它们,因此它们至少犯了一次?
答案 0 :(得分:192)
当我找到in this post时,.gitignore
仅适用于未跟踪的文件。如果您将文件添加到存储库,则可以:
git update-index --assume-unchanged <file>
或通过
将其从存储库中删除git rm --cached <file>
修改的
This article也解释了
答案 1 :(得分:12)
我也遇到过这个问题,这可能是因为你在GIT的初始提交流程中将被忽略的目录/文件添加到.gitignore后被添加到.gitignore。
所以你需要像这样清除git跟踪缓存:
git rm --cached -r [folder/file name]
可在此处阅读更详细的说明: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html
上述命令还从远程GIT源删除了文件夹/文件的残余。所以你的GIT回购变得干净了。
答案 2 :(得分:2)
问题可能是此文件仍在git缓存中。要解决此问题,需要重置git缓存。
重置git缓存。这将从索引中删除所有内容。
git rm -r --cached .
再次添加所有文件:
git add .
提交:
git commit -m ".gitignore was fixed."
答案 3 :(得分:1)
这肯定有效,
git rm --cached -r [folder/file name]
答案 4 :(得分:1)
我假设您不想添加tmp目录(Visual Studio Platform)
1-在您当地的.gitignore文件中添加以下行
## ignore tmp
/tmp/
./tmp/
3-备份并在本地删除tmp文件夹。 (在其他地方备份。例如桌面?)
4-提交本地更改而不是同步到远程(例如github)。
完成这些步骤后,您的tmp目录将不会再次上传。
答案 5 :(得分:0)
来自 man git-lsfiles :
-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.
我个人倾向于在源代码树中保留doxygen文件,所以我只是将它添加到我的.gitignore(它位于我的源代码树的最顶层目录中):
docs/*
希望有所帮助。
答案 6 :(得分:0)
git --ignored myfolder
仅显示 myfolder
的状态答案 7 :(得分:0)
以下步骤仅适用于未跟踪的文件。 此信息适用于以下配置:
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
答案 8 :(得分:0)
根据接受的答案,您可以假定文件未更改,这样您在本地计算机上所做的任何操作都不会提交到远程分支。
类似git update-index --assume-unchanged src/main/resources/config.properties
的东西,其中src / main.resources / config.properties是在项目中查找该文件的路径的示例。
现在,如果要从存储库中完全删除文件,则可能要使用remove cached
代替`git rm --cached
这种情况可能适用于以下情况:
假设我有一个存储密码的文件。我最初使用错误的详细信息提交了该文件,只是为了让我的同事在他们的计算机上拥有相同的文件。但是,现在我在本地计算机上添加了正确的详细信息。如何防止使用现在正确的密码详细信息再次误提交该文件?
答案 9 :(得分:0)
在 .gitignore 文件中进行更改之后。 按照这些简单的步骤操作
import os
def log_count("/mydir"):
count = 0
for root, dirs, files in os.walk("/mydir"):
for file in files:
if file.endswith(".LOG"):
count += 1
return count
检查
oc adm policy add-scc-to-user anyuid -z default