我想从跟踪中排除文件,但将它们保存在 repo 中
I want to exclude files from tracking but save them in repo
我有一个目录 /data
和我的文件 main.py
。我将其用作测试版文件并首先对其进行更改,而不是直接部署到生产环境中。
这样做会操作 /data
中的文件,当我稍后提交它时,它也会提交所有 data/
文件,这当然是我不想的。
我尝试在 .gitignore
中添加目录 data/
,然后执行
git rm -rf --cached .
git add .
但是当我尝试提交时,它显示我删除了 data/
中的所有文件,这完全不是我想要的。
我想要的是:它只是停止跟踪文件,即它既不会删除它们,也不会提交更改的文件。
我该怎么做?
I found what I needed: --skip-worktree
不过,您必须将 skip-worktree 应用于该文件夹内的所有元素。
参见“”
正如我在“Git - Difference Between 'assume-unchanged' and 'skip-worktree'”
中所解释的
Users often try to use the assume-unchanged and skip-worktree bits to tell Git to ignore changes to files that are tracked.
This does not work as expected, since Git may still check working tree files against the index when performing certain operations.
In general, Git does not provide a way to ignore changes to tracked files, so alternate solutions are recommended.
但对于您的情况,这可能是一种临时解决方法。
不要忘记 --no-skip-worktree
来恢复文件夹索引。
我有一个目录 /data
和我的文件 main.py
。我将其用作测试版文件并首先对其进行更改,而不是直接部署到生产环境中。
这样做会操作 /data
中的文件,当我稍后提交它时,它也会提交所有 data/
文件,这当然是我不想的。
我尝试在 .gitignore
中添加目录 data/
,然后执行
git rm -rf --cached .
git add .
但是当我尝试提交时,它显示我删除了 data/
中的所有文件,这完全不是我想要的。
我想要的是:它只是停止跟踪文件,即它既不会删除它们,也不会提交更改的文件。 我该怎么做?
I found what I needed:
--skip-worktree
不过,您必须将 skip-worktree 应用于该文件夹内的所有元素。
参见“
正如我在“Git - Difference Between 'assume-unchanged' and 'skip-worktree'”
中所解释的Users often try to use the assume-unchanged and skip-worktree bits to tell Git to ignore changes to files that are tracked.
This does not work as expected, since Git may still check working tree files against the index when performing certain operations.In general, Git does not provide a way to ignore changes to tracked files, so alternate solutions are recommended.
但对于您的情况,这可能是一种临时解决方法。
不要忘记 --no-skip-worktree
来恢复文件夹索引。