我添加了以下行,.gitignore但是当我键入git status它时,它将文件显示为未停止的文件.有什么问题?所有其他模式运作良好.
.gitignore 文件内容:
sites/default/settings.php
Run Code Online (Sandbox Code Playgroud)
pok*_*oke 297
确保您.gitignore位于工作目录的根目录中,并在该目录中运行git status并从状态输出中复制文件的路径并将其粘贴到.gitignore.
如果这不起作用,那么Git可能已经跟踪了您的文件.您可以通过输出确认git status.如果该文件未列在"未跟踪文件"部分中,则Git已经跟踪该.gitignore文件,它将忽略该文件中的规则.
忽略Git中文件的原因是它们不会被添加到存储库中.如果您之前添加了一个要忽略的文件,那么它将被Git跟踪,并且将跳过与其匹配的忽略规则.Git这样做,因为该文件已经是存储库的一部分.
为了实际忽略该文件,您必须将其删除并将其从存储库中删除.你可以通过使用来做到这一点git rm --cached sites/default/settings.php.这将从存储库中删除文件而不会物理删除文件(这就是它的--cached作用).提交更改后,文件将从存储库中删除,忽略它应该正常工作.
Mes*_*ito 93
我遇到这个问题,这是一个老问题,但我希望跟踪该文件,但不要在某些工作副本上跟踪它,为此你可以运行
git update-index --assume-unchanged sites/default/settings.php
Run Code Online (Sandbox Code Playgroud)
Exp*_*cer 49
请使用此命令
git rm -rf --cached .
git add .
Run Code Online (Sandbox Code Playgroud)
有时 .gitignore 文件即使正确也不起作用。Git 忽略文件的原因是它们没有被添加到存储库中。如果你之前添加了一个你想忽略的文件,它会被 Git 跟踪,任何跳过的匹配规则都会被跳过。Git 这样做是因为该文件已经是存储库的一部分。
jon*_*scb 38
.gitignore只会忽略您尚未添加到存储库的文件.
如果你做了git add .,并且文件被添加到索引中,.gitignore将无法帮助你.您需要git rm sites/default/settings.php删除它,然后它将被忽略.
Flo*_*ris 10
我有同样的问题..gitingore在运行时列为未跟踪文件的文件中定义的文件git status.
原因是.gitignore文件以UTF-16LE编码方式保存,而不是以UTF8编码方式保存.
更改.gitignore文件的编码后,UTF8它为我工作.
我做了什么来成功忽略settings.php文件:
我认为如果 Git 上有提交的文件,那么忽略将无法按预期工作。只需删除文件并提交即可。之后就会忽略。
有一些实例,例如应用程序配置文件,我想在 git 中对其进行跟踪(因此 .gitignore 将不起作用),但我需要更改本地设置。我不希望 git 管理这些文件或将它们显示为已修改。为此,我使用跳过工作树:
git update-index --skip-worktree path/to/file
Run Code Online (Sandbox Code Playgroud)
您可以通过列出文件并检查以 S 开头的行来确认文件被跳过
git ls-files -v | grep ^S
Run Code Online (Sandbox Code Playgroud)
如果以后你想让 git 再次在本地管理文件,只需运行:
git update-index --no-skip-worktree path/to/file
Run Code Online (Sandbox Code Playgroud)
上面的麦斯卡力陀有一个很好的答案,这使我走上了正确的道路,但是
git update-index --assume-unchanged file/to/ignore.php
与 git 签订合同,其中:用户承诺不更改文件并允许 Git 假设工作树文件与索引中记录的内容相匹配。
但是,我更改了文件的内容,因此在我的情况下 --skip-worktree 是更好的选择。
Toshiharu Nishina 的网站提供了跳过工作树与假设不变的极好解释:忽略已在本地使用 Git 管理的文件
另一个可能的原因是\xe2\x80\x93几个 git 客户端实例同时运行。例如“git shell”+“GitHub Desktop”等。
\n\n这发生在我身上,我使用“GitHub Desktop”作为主要客户端,它忽略了一些新的 .gitignore 设置:提交后提交:
\n\n原因:Visual Studio Code 编辑器在后台运行,并使用相同的打开存储库。VS Code 内置了 git 控件,这会产生一些冲突。
\n\n解决方案:仔细检查多个隐藏的 git 客户端,并一次仅使用一个 git 客户端,尤其是在清除 git 缓存时。
\n