Python 我想从跟踪中排除文件,但将其保存在repo中

Python 我想从跟踪中排除文件,但将其保存在repo中,python,python-3.x,git,pycharm,Python,Python 3.x,Git,Pycharm,我有一个dir/data和我的文件main.py。我将其用作beta文件,并首先对其进行更改,而不是直接在生产中部署。 这样做会处理/data中的文件,当我稍后提交它时,它也会提交所有数据/文件,当然我不想这样做 我尝试在.gitignore中添加dirdata/,然后执行 git rm -rf --cached . git add . 但是当我尝试提交时,它显示我删除了data/中的所有文件,这完全不是我想要的 我想要的是:它只是停止跟踪文件,即它既不会删除文件,也不会提交更改的文件。 我该

我有一个dir
/data
和我的文件
main.py
。我将其用作beta文件,并首先对其进行更改,而不是直接在生产中部署。 这样做会处理
/data
中的文件,当我稍后提交它时,它也会提交所有
数据/
文件,当然我不想这样做

我尝试在
.gitignore
中添加dir
data/
,然后执行

git rm -rf --cached .
git add .
但是当我尝试提交时,它显示我删除了
data/
中的所有文件,这完全不是我想要的

我想要的是:它只是停止跟踪文件,即它既不会删除文件,也不会提交更改的文件。 我该怎么做

我找到了我需要的:
——跳过工作树

不过,您必须将跳过工作树应用于该文件夹中的所有元素。
见“

正如我在“”中所解释的

用户经常尝试使用“假定未更改”和“跳过工作树”来告诉Git忽略对跟踪文件的更改。
这并不像预期的那样有效,因为Git在执行某些操作时可能仍然会根据索引检查工作树文件

一般来说,Git不提供忽略对跟踪文件的更改的方法,因此建议使用其他解决方案

但在您的情况下,这可能是一种临时解决办法。

不要忘记一个
--no skip worktree
来恢复文件夹索引。

使用.gitignore来停止某些文件或文件夹被删除commited@AlphaWolfGamer我已经说过,当我将dir添加到
.gitignore
时,它会完全删除它。。与其停止跟踪它,您通常只需要执行一次
git rm-rf--cached.
操作,当它已经被跟踪并且您想要取消跟踪时。之后,您只需要将它放入.gitignore,git将停止跟踪它。将其放入.gitignore不会删除任何内容,因此可能是您正在执行的其他命令/步骤将其删除。如果您使用的是IDE,那么它可能只是从UI中隐藏gitignore文件,但实际上不会删除它们。@GinoMempin谢谢,但我找到了我需要的-
——跳过工作树