Git:仅取消跟踪文件夹的特定分支

Posted

技术标签:

【中文标题】Git:仅取消跟踪文件夹的特定分支【英文标题】:Git: Untracking folder only specific branch 【发布时间】:2021-02-04 04:20:48 【问题描述】:

我有一个关于使用 git 的问题。

在我的“测试”分支上,我想让我的 git 使用以下命令取消跟踪文件夹及其子文件。并希望删除此文件夹以缩短构建时间。 (文件夹中有超过 4000 个文件和图像,这使我的工作分支构建速度太慢)

git ls-files -z PathToFolder | xargs -0 git update-index --assume-unchanged

当我只是在这个分支上工作时,它工作正常。但问题是切换到另一个分支时,因为删除的文件夹没有恢复。

我想要什么

我想取消跟踪包含大量文件的文件夹并将其删除,因为我想提高 jekyll 构建速度,仅在“测试”分支上,而不是在其他分支上。 切换到另一个分支时,删除的文件夹应该会回来。

感谢您的阅读:)

【问题讨论】:

这不会untrack任何东西,它只是标记现有的索引条目,这样Git就不会打扰寻找文件。请注意,Git 从不存储文件夹:它只存储文件。您必须标记每个文件(您的 git ls-files -z ... 序列会这样做)。 @torek 谢谢,我也猜这是不可能的。我只是想通过简单地删除我的测试分支的所有图像和一些包含文件来缩短构建时间。 您可能会考虑 GIt 的“稀疏签出”支持:克隆存储库,启用稀疏签出,并列出要签出(或不签出)的文件,Git 本身将跳过签出并为这些文件设置假定不变的位。 【参考方案1】:

你可以使用 git stash 命令

https://git-scm.com/docs/git-stash

当您更改分支时,工作目录将被存储起来,当您需要再次访问您的测试分支时,您可以返回到这里。

【讨论】:

感谢您对我的询问的关注 :)

以上是关于Git:仅取消跟踪文件夹的特定分支的主要内容,如果未能解决你的问题,请参考以下文章

git 取消文件跟踪

Git取消文件跟踪

git取消文件跟踪

git取消文件跟踪

git 取消文件跟踪

git取消删除已经提交的文件(夹)跟踪