Atlassian SourceTree: Jak globalnie zmieniać zakończenia linii?

10

Czy istnieje sposób w Atlassian SourceTree lub w moim obecnym hoście git (BitBucket), aby globalnie zmienić zakończenia linii dla wszystkich moich repozytoriów.

Myślę, że obecnie są one ustawione na Uniksa (myślę, że zrobiłem to przez przypadek), ale rozwijam się wyłącznie w systemie Windows. Moje IDE ciągle wyświetla mi komunikaty ostrzegawcze i błędy dotyczące zakończeń linii mieszanych w moich plikach i chciałbym to naprawić, ale za każdym razem, gdy pcham projekt do chmury, zmienia się z powrotem na zakończenia Unix, więc nawet jeśli wsadowo zmieniam zakończenia linii i tak zostają cofnięte.

Scott
źródło

Odpowiedzi:

12

Możesz skonfigurować obsługę końca linii dla repozytorium, dodając specjalny plik .gitattributes do folderu głównego repozytorium Git. Jeśli plik ten jest zatwierdzony do repozytorium, zastępuje ustawienie core.autocrlf poszczególnych programistów.

W tym pliku możesz skonfigurować Git, aby automatycznie wykrywał zakończenia linii.

Uwaga: - Nie wszystkie graficzne narzędzia Git obsługują plik .gitattributes, na przykład Eclipse IDE obecnie go nie obsługuje.

Oto przykładowy plik .gitattributes. Możesz użyć go jako szablonu dla swoich repozytoriów:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

Zauważysz, że pliki są dopasowane - *. C, * .sln, * .png--, oddzielone spacją, a następnie podane ustawienie - tekst, tekst eol = crlf, binarny. Poniżej omówimy niektóre możliwe ustawienia.

text = auto Git będzie obsługiwał pliki w sposób, który uzna za najlepszy. To dobra domyślna opcja.

text eol = crlf Git zawsze będzie zamieniał zakończenia linii na CRLF przy kasie. Powinieneś użyć tego w przypadku plików, które muszą zachować zakończenia CRLF, nawet w OSX lub Linux. Na przykład tutaj jest projekt systemu Windows, który wymusza zakończenie linii CRLF.

text eol = lf Git przy kasie zawsze konwertuje zakończenia linii na LF. Powinieneś używać tego do plików, które muszą kończyć LF, nawet w systemie Windows. Na przykład tutaj jest projekt, który wymusza zakończenie linii LF.

binarny Git zrozumie, że określone pliki nie są tekstem i nie powinien próbować ich zmieniać. Ustawienie binarne jest także aliasem dla -text -diff.

gpullen
źródło
Linki zewnętrzne mogą stać się niedostępne, w takim przypadku Twoja odpowiedź miałaby niewielką wartość. Podaj w odpowiedzi niezbędne informacje i użyj linku do przypisania oraz źródła dalszych informacji. Dzięki.
fixer1234
Mam nadzieję, że obejmuje to wymagane szczegóły
gpullen