Czy istnieje sposób, aby powiedzieć gitowi, aby dołączał tylko określone pliki zamiast ignorować określone pliki?
Moje programy zazwyczaj generują ogromne pliki wyjściowe (~1 GB), których nie chcę tworzyć w repozytorium git. Więc zamiast być w stanie zrobić
git add .
Muszę zrobić coś takiego
git add *.c *.cc *.f *.F *.C *.h *.cu
Co jest trochę uciążliwe...
Czuję się dość pewny, że mógłbym napisać szybki skrypt Perla, który zawiera zawartość katalogu .gitignore, a następnie usunąć pliki na podstawie .plik gitinclude (lub o podobnej nazwie), ale wydaje się to trochę zbyt hakerskie. Czy istnieje lepszy sposób?
4 answers
Nie musiałem sam tego próbować, ale z mojej lektury TFM wygląda na to, że zanegowany wzór zrobiłby to, co chcesz. Możesz zastąpić wpisy w .gitignore z późniejszymi negacjami. Można więc zrobić coś takiego:
*.c
!frob_*.c
!custom.c
Aby zignorować wszystko .pliki c z wyjątkiem niestandardowych.c i wszystko zaczynające się na "frob_"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-14 19:23:26
Utwórz .plik gitignore w repozytorium i chcesz śledzić tylko pliki c i ignorować wszystkie inne pliki, a następnie dodaj do niego następujące linie....
*
!*.c
'* ' zignoruje wszystkie pliki
I ! czy negate pliki będą do ignored....so tutaj prosimy git, aby nie ignorował plików C....
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-01 06:26:53
Najlepsze rozwiązanie, aby to osiągnąć
Utwórz .gitignore
plik w repozytorium root
, a jeśli chcesz dołączyć tylko .c
Plik następnie należy dodać poniższe linie do .gitignore
Plik
*.*
!*.c
To będzie obejmować wszystkie .c
Plik z katalogu i podkatalogu rekurencyjnie.
using
*
!*.c
nie będzie działać na wszystkich wersjach Gita.
Testowane na
Git Wersja 2.12.2.okna.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-25 06:28:37
Użyj tego w gitignore
*.*
!*.c
Testowane z git w wersji 2.7.4
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-09 20:16:47