2016-08-09 4 views
3

나는 특정 git에서 소스 코드를 제외한 모든 것을 제거하기 위해 git을 사용하려고 시도해 왔습니다.git filter-branch를 사용하여 하나의 서브 디렉토리를 제외한 모든 것을 제거합니다.

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 

내가 어떻게 할 수 있습니까?

답변

3

당신은 --tree-filter 필요

git filter-branch \ 
    --tree-filter "find . -type f -not -wholename './source_code/*' -delete" HEAD