所以我的.gitignore只是在某个时候停止正常工作,并向我显示我想忽略的目录中的更改.
我已经阅读了有关此***解决方案的所有信息:
git rm -r --cached.git add.git commit -m"修复未跟踪文件"
它确实在我的机器上完美运行,我做了这三个步骤 - 提交它们 - 我可以在我的机器上对被忽略的目录进行更改.
问题是,当我将此提交提取到服务器时,它会删除所有被忽略的内容!不是它只是忽略它,它从服务器中删除文件和目录,使项目变得无用......
在整个互联网上,这个解决方案似乎是唯一一个破坏.gitignore的解决方案,但并不是因为它删除了不应删除的文件和目录.这很傻,很久以前就应该删除这样一个愚蠢的bug ...
编辑:它发生在不同的路径或文件上,当手动或通过软件添加到.gitignore时 - 将gitignore路径放在这里是没有意义的.< - 这是我提到的错误,而不是我运行一些命令......
.gitignore不会删除您服务器上的任何内容.你做到了!
再次阅读你的问题.你跑了:
git rm -r --cached .
git add .
git commit
Run Code Online (Sandbox Code Playgroud)
第一个命令告诉Git从索引中删除所有内容.它基本上准备一个空工作树作为下一个提交.
第二个命令将工作目录添加回索引,但由于您刚添加的行.gitignore,您要忽略的文件不再出现在索引中.
第三个命令只会使您的更改永久化.这意味着您刚刚创建的提交不包含您刚添加的文件.gitignore.
发生这种情况是因为这样做的目的是.gitignore:它告诉Git哪些文件不跟踪(任何更多).
因为它们在过去已被跟踪,所以文件不会从存储库中删除,它们只是在最后一次提交(以及所有将来的提交)中都不存在.运行后运行后可以恢复它们git pull:
git checkout <commit_id> -- <file_path>
Run Code Online (Sandbox Code Playgroud)
哪个<commit_id>是包含文件的最后一次提交的哈希值(就在您添加其名称之前.gitignore),并且<file_path>是您想要获取的一个被忽略文件的路径.对每个被忽略的文件重复
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |