Używam tabulatorów do wcięć w moich programach pythonowych, ale chciałbym współpracować (używając git) z ludźmi, którzy zamiast tego używają spacji.
Czy istnieje sposób, aby git automatycznie konwertował między spacjami i tabulatorami (powiedzmy, 4 spacje = 1 tab) po wypychaniu / pobieraniu? (podobny do konwersji CR / LF)
git
tabs
indentation
Olivier Verdier
źródło
źródło
Odpowiedzi:
Oto kompletne rozwiązanie:
W swoim repozytorium dodaj plik
.git/info/attributes
zawierający:Linux / Unix
Teraz uruchom polecenia:
OS X
Najpierw zainstaluj coreutils z naparem:
Teraz uruchom polecenia:
Wszystkie systemy
Możesz teraz sprawdzić wszystkie pliki swojego projektu. Możesz to zrobić za pomocą:
i wszystkie pliki Pythona będą teraz miały tabulatory zamiast spacji.
Edycja : zmieniono polecenie wymuszonego pobrania. Oczywiście powinieneś najpierw wykonać swoją pracę.
źródło
homebrew
, a następnie uruchombrew install coreutils
).Tak, jednym z potencjalnych rozwiązań jest użycie sterownika filtru atrybutów git (patrz także książka GitPro ), aby zdefiniować mechanizm rozmazywania / czyszczenia.
W ten sposób:
Możesz zadeklarować ten sterownik filtra (o nazwie tutaj '
tabspace
') w.git/info/attributes
(dla filtra zastosowanego do wszystkich plików w repozytorium Git), o następującej treści:Teraz uruchom polecenia:
Zobacz Olivier jest odpowiedzią na konkretny przykład takiej pracy rozmazywanie / czystej zestaw instrukcji.
źródło
--global
flagę, ponieważ oznaczałoby to wysłanie spacji do każdego projektu współpracy ....gitattributes
. Ale tak, łatwiej zrozumieć, czy konfiguracja jest lokalna dla repozytorium. Zredagowałem odpowiedź.Bardzo przydatne informacje dla wszystkich korzystających z GitHub (lub innej podobnej usługi)
~/.gitconfig
Następnie mam dwa pliki:
attributes
i
attributes2
Praca nad osobistymi projektami
W ten sposób, kiedy w końcu pchniesz swoją pracę na github, nie będzie wyglądać głupio w widoku kodu, z
8 space tabs
którym jest domyślne zachowanie we wszystkich przeglądarkach.Wkład w inne projekty
W ten sposób możesz pracować z normalnymi zakładkami w
2 space indented
projektach.Oczywiście możesz napisać podobne rozwiązanie do konwersji, z
4 space to 2 space
którego ma to miejsce, jeśli chcesz przyczynić się do opublikowanych przeze mnie projektów i podczas programowania zwykle używasz 2 spacji.źródło
.gitattributes
plik w swoim repozytoriumJeśli korzystasz z systemu Windows, musisz wykonać kilka dodatkowych kroków, aby uruchomić rozwiązanie @Olivier Verdier .
źródło