📌  相关文章
📜  从 repo 中删除文件夹但保留在本地 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:21:53.805000             🧑  作者: Mango

从 repo 中删除文件夹但保留在本地 - Shell-Bash

有时候,我们在 Git 代码库中不再需要某些文件或文件夹,但是希望在本地保留它们。这个问题可以通过 Git sparse checkout 解决,这个方法可以允许用户将 Git 仓库中的某些文件或文件夹“挖掘”出来并在本地保留,同时从版本控制中删除。

步骤

1. 启用 sparse checkout

要启用 sparse checkout ,首先输入以下命令:

$ git config core.sparseCheckout true

然后将 Git 仓库的根目录更改为包含您想要挖掘出的文件夹的目录。

2. 创建 sparse-checkout 文件

接下来,创建一个名为 .git/info/sparse-checkout 的文件,其中包含您想要从仓库中挖掘的文件夹名称,您可以在此文件中添加多个行以挖掘多个文件夹。

例如,要挖掘名为 folderName 的文件夹,您可以使用以下命令创建 .git/info/sparse-checkout 文件并编辑它,输入以下内容:

$ echo 'folderName/' > .git/info/sparse-checkout

.git/info/sparse-checkout 中的样例内容:

$ cat .git/info/sparse-checkout 
folder1/
folder2/
file3

3. 删除文件夹

接下来,删除该文件夹并提交更改:

$ git rm -r --cached folderName
$ git commit -m "Remove folderName"

请注意,此命令将从版本控制中删除该文件夹。但是,由于 core.sparseCheckout 设置是 true,所以在本地该文件夹是不会被删除的。

结论

通过使用 Git 的 sparse checkout 功能,您可以轻松地从 Git 仓库中删除不需要的部分而不会影响本地文件,同时保持 Git 仓库的完整性。请记住,在启用 sparse checkout 后,您只需要更改 .git/info/sparse-checkout 文件中列出的条目以扩展或缩小仓库中的内容。