Saya menggunakan tab untuk indentasi dalam program python saya, tetapi saya ingin berkolaborasi (menggunakan git) dengan orang-orang yang menggunakan spasi.
Apakah ada cara bagi git untuk secara otomatis mengkonversi antara spasi dan tab (katakanlah, 4 spasi = 1 tab) saat mendorong / mengambil? (mirip dengan konversi CR / LF)
git
tabs
indentation
Olivier Verdier
sumber
sumber
Jawaban:
Inilah solusi lengkapnya:
Di repositori Anda, tambahkan file
.git/info/attributes
yang berisi:Linux / Unix
Sekarang jalankan perintah:
OS X
Pertama instal coreutils dengan minuman:
Sekarang jalankan perintah:
Semua sistem
Anda sekarang dapat memeriksa semua file proyek Anda. Anda dapat melakukannya dengan:
dan semua file python sekarang akan memiliki tab bukan spasi.
Sunting : mengubah perintah checkout terpaksa. Anda harus melakukan pekerjaan Anda terlebih dahulu, tentu saja.
sumber
homebrew
, lalu jalankanbrew install coreutils
).Ya, salah satu solusi potensial adalah dengan menggunakan driver filter atribut git (lihat juga buku GitPro ), untuk mendefinisikan mekanisme noda / bersih.
Seperti itu:
Anda dapat mendeklarasikan driver filter ini (dinamai di sini '
tabspace
') di.git/info/attributes
(untuk filter yang diterapkan ke semua file dalam repo Git), dengan konten berikut:Sekarang jalankan perintah:
Lihat Olivier 's jawaban untuk contoh kerja konkret dari noda seperti / set bersih instruksi.
sumber
--global
bendera, karena ini akan menyiratkan, Anda mengirim spasi ke setiap proyek kolaborasi ....gitattributes
. Tapi ya, lebih mudah untuk dipahami jika konfigurasi disimpan secara lokal ke repo. Saya telah mengedit jawabannya.Info yang sangat berguna untuk semua orang yang menggunakan GitHub (atau layanan serupa lainnya)
~/.gitconfig
Lalu saya punya dua file:
attributes
dan
attributes2
Bekerja pada proyek pribadi
Dengan begitu, ketika Anda akhirnya mendorong pekerjaan Anda di github, itu tidak akan terlihat konyol dalam tampilan kode
8 space tabs
yang merupakan perilaku default di semua browser.Berkontribusi ke proyek lain
Dengan begitu Anda dapat bekerja dengan tab normal pada
2 space indented
proyek.Tentu saja Anda dapat menulis solusi serupa untuk mengkonversi dari
4 space to 2 space
yang terjadi jika Anda ingin berkontribusi pada proyek yang diterbitkan oleh saya dan Anda cenderung menggunakan 2 spasi saat mengembangkan.sumber
.gitattributes
file dalam repo AndaJika Anda menggunakan windows maka Anda memiliki beberapa langkah tambahan untuk mendapatkan solusi @Olivier Verdier agar berfungsi.
sumber