使用 git filter-branch 删除除一个子目录之外的所有内容
Using git filter-branch to remove everything except one subdirectory
我一直在尝试使用 git 删除特定分支中除源代码之外的所有内容。
git filter-branch -f \
--subdirectory-filter source_code \
--prune-empty \
--tag-name-filter cat -- --all
命令基本上得到了我想要的,除了它把文件放在 source_code/
的根目录下,而我希望它们全部保留在目录中。即
- source_code
- file1.py
- file2.py
不只是
- file1.py
- file2.py
我该怎么做?
你需要--tree-filter:
git filter-branch \
--tree-filter "find . -type f -not -wholename './source_code/*' -delete" HEAD
我一直在尝试使用 git 删除特定分支中除源代码之外的所有内容。
git filter-branch -f \
--subdirectory-filter source_code \
--prune-empty \
--tag-name-filter cat -- --all
命令基本上得到了我想要的,除了它把文件放在 source_code/
的根目录下,而我希望它们全部保留在目录中。即
- source_code
- file1.py
- file2.py
不只是
- file1.py
- file2.py
我该怎么做?
你需要--tree-filter:
git filter-branch \
--tree-filter "find . -type f -not -wholename './source_code/*' -delete" HEAD