2016-08-09 80 views
3

Ich habe versucht, git zu verwenden, um alles außer dem Quellcode in einem bestimmten Zweig zu entfernen. DerVerwenden von Git-Filter-Zweig, um alles außer einem Unterverzeichnis zu entfernen

git filter-branch -f \ 
    --subdirectory-filter source_code \ 
    --prune-empty \ 
    --tag-name-filter cat -- --all 

Befehl ruft mich im Grunde, was ich will, außer es die Dateien in source_code/ an der Wurzel platziert, während ich sie alle bleiben im Verzeichnis möge. I.e.

- source_code 
    - file1.py 
    - file2.py 

nicht nur

- file1.py 
- file2.py 

Wie kann ich das tun?

Antwort

3

Sie benötigen --tree-filter:

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