我们的开发环境使用多个存储库作为整体构建系统的一部分。构建会根据您 checkout 的存储库进行动态调整:如果您不需要构建特定组件,请不要克隆它。
但是,一旦您克隆了一个组件,将其从构建中移除是有问题的:
- 您可以删除工作目录中的文件,但是
git status
会显示未提交的更改 - 您可以删除存储库,但需要时重新克隆
- 您可以移动存储库,但您的多存储库工具可能会“有帮助地”重新克隆
有没有更好的方法来删除工作目录的文件?类似于 hg co null
或 p4 sync ...#none
的东西?
最佳答案
找到similar后questions这并没有完全满足我的要求,this article提供了答案:创建一个空分支。
git checkout --orphan empty
git rm -rf .
git commit --allow-empty -m "An empty working directory"
当然,请确保您已首先将所有重要文件提交到您的存储库。我将此分支称为 empty
,但您可以通过 checkout
命令为其指定任何名称。
设置完成后,您可以切换到任何分支以取回您的文件:
git checkout master
当您需要“删除”工作目录时,提交更改,然后运行:
git checkout empty
这将删除所有跟踪的文件。如果您还需要删除未跟踪的文件和目录,请执行以下操作:
git clean -fdx
关于git - 将 Git 工作目录转换为裸存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27113801/