小编典典

从 git 跟踪中删除文件夹

all

我需要从跟踪中排除文件夹(名称上传)。我试着跑

git rm -r --cached wordpress/wp-content/uploads

之后我添加了 .gitignore 的路径

/wordpress/wp-content/uploads

但是当我运行时,git status它们显示为已删除。如果我尝试提交更改,文件将被删除,而不仅仅是从跟踪中删除。

我究竟做错了什么?

我也试过

git update-index --assume-unchanged <file>

但这似乎只取消跟踪文件。但我需要从跟踪中删除整个文件夹(包括子文件夹)。


阅读 155

收藏
2022-03-07

共1个答案

小编典典

我在谷歌搜索“git remove folder from tracking”时遇到了这个问题。OP的问题引导我找到答案。我在这里为后代总结一下。

如何从我的 git 存储库中删除一个文件夹而不从我的本地机器(即开发环境)中删除它?

回答

步骤 1. 将文件夹路径添加到您的 repo 的根.gitignore文件。

path_to_your_folder/

步骤 2. 从本地 git 跟踪中删除该文件夹,但将其保留在磁盘上。

git rm -r --cached path_to_your_folder/

步骤 3. 将您的更改推送到您的 git 存储库。

从 Git 的角度来看,该文件夹将被视为“已删除”(即它们在过去的历史中,但不在最新的提交中,从这个 repo
中提取的人将从他们的树中删除文件),但留在您的工作目录中因为你用过--cached

2022-03-07