Atlassian SourceTree: Bagaimana mengubah akhir baris secara global?

10

Apakah ada cara di Atlassian SourceTree atau dengan host git saya saat ini (BitBucket) untuk mengubah akhir baris secara global untuk semua repositori saya.

Saya pikir mereka saat ini diatur ke Unix (saya pikir saya melakukan ini secara tidak sengaja) tetapi saya mengembangkan hanya pada Windows. IDE saya terus memberi saya pesan peringatan dan kesalahan tentang akhir baris campuran dalam file saya dan saya ingin memperbaikinya tetapi setiap kali saya mendorong proyek saya ke cloud itu akan diubah kembali ke ujung Unix sehingga bahkan jika saya batch mengubah akhir baris mereka tetap dikembalikan.

Scott
sumber

Jawaban:

12

Anda dapat mengkonfigurasi penanganan akhir baris per repositori dengan menambahkan file .gitattributes khusus ke folder root dari repositori Git Anda. Jika file ini dikomit ke repositori, itu mengesampingkan pengaturan core.autocrlf dari pengembang individu.

Dalam file ini Anda dapat mengkonfigurasi Git untuk secara otomatis mendeteksi akhir baris.

Catatan: - Tidak semua alat Git grafis mendukung file .gitattributes, misalnya Eclipse IDE saat ini tidak mendukungnya.

Berikut ini contoh file .gitattributes. Anda dapat menggunakannya sebagai templat untuk repositori Anda:

# 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

Anda akan melihat bahwa file dicocokkan - *. C, * .sln, * .png--, dipisahkan oleh spasi, kemudian diberi pengaturan - teks, teks eol = crlf, biner. Kami akan membahas beberapa kemungkinan pengaturan di bawah ini.

text = auto Git akan menangani file dengan cara apa pun yang dianggapnya terbaik. Ini adalah opsi default yang bagus.

text eol = crlf Git akan selalu mengonversi akhiran baris menjadi CRLF saat checkout. Anda harus menggunakan ini untuk file yang harus menjaga ujung CRLF, bahkan pada OSX atau Linux. Sebagai contoh, di sini adalah proyek Windows yang menegakkan akhir jalur CRLF.

text eol = Jika Git akan selalu mengonversi akhiran baris menjadi LF saat checkout. Anda harus menggunakan ini untuk file yang harus menjaga ujung LF, bahkan di Windows. Untuk contoh , di sini adalah sebuah proyek yang memaksa akhir baris LF.

binary Git akan mengerti bahwa file yang ditentukan bukan teks, dan itu tidak boleh mencoba mengubahnya. Pengaturan biner juga merupakan alias untuk -text -diff.

gpullen
sumber
Tautan eksternal dapat menjadi tidak tersedia, dalam hal ini jawaban Anda hanya memiliki sedikit nilai. Harap sertakan informasi penting dalam jawaban Anda dan gunakan tautan untuk atribusi dan sumber informasi lebih lanjut. Terima kasih.
fixer1234
Semoga ini termasuk detail yang diperlukan
gpullen