如何创建Git孤立分支并仅保留指定文件夹?
如何创建Git孤立分支并仅保留指定文件夹?
我太懂这种卡壳的感觉了——刚费劲创建了孤立分支,结果想只留个A文件夹却翻车,GitBash的命令有时候确实有点小脾气🤦♂️。咱们来一步步搞定它:
首先,先说说你原来的命令为啥没生效:一方面GitBash里的find和原生Linux的参数兼容性有点小差异,另一方面你没给rm加递归删除的参数(要删文件夹得用-rf),而且直接用xargs处理文件夹容易出问题。
给你两个方案,选哪个都行:
方案一:修正find命令(适合爱用命令行的同学)
直接在GitBash里执行这条命令,比你原来的更稳妥:
find . -mindepth 1 -name "A" -prune -o -exec rm -rf {} +
解释下关键参数:
-mindepth 1:避免误删当前目录(.)-exec rm -rf {} +:直接对找到的每个文件/文件夹执行递归删除,比xargs更适配文件夹的删除场景,不容易报错
方案二:傻瓜式操作(怕踩坑的话选这个)
这个方法更直观,完全不用记复杂的find参数:
- 先把仓库里的
A文件夹拖到仓库外面的临时位置(比如桌面) - 回到GitBash的仓库目录,执行:
这条命令会清空仓库里所有被Git追踪的内容(因为是孤立分支,其实就是删光所有文件和文件夹)git rm -rf . - 把刚才移走的
A文件夹拖回仓库目录 - 最后提交这个初始版本:
git add A git commit -m "Initialize new branch with only folder A"
对了,别忘了最后要提交!因为孤立分支一开始是没有任何提交记录的,必须提交一次这个只含A的版本,分支才算真正可用~
内容来源于stack exchange
相关产品推荐
相关产品推荐

