GNU/Linux >> Belajar Linux >  >> Linux

git memaksa menyegarkan indeks setelah beralih antara windows dan linux

Seperti yang disebutkan torek, Anda mungkin tidak ingin melakukan ini. Biasanya bukan ide yang baik untuk berbagi repo antar sistem operasi.

Namun, itu mungkin, seperti halnya berbagi repo antara Windows dan Subsistem Windows untuk Linux. Anda mungkin ingin mencoba menyetel core.checkStat ke minimal , dan jika itu tidak cukup, core.trustctime ke false . Itu mengarah pada jumlah minimal informasi yang disimpan dalam indeks, yang berarti bahwa data akan dibuat sedapat mungkin portabel.

Perhatikan, bagaimanapun, bahwa jika repositori Anda memiliki symlink, kemungkinan tidak ada yang Anda lakukan akan mencegah penyegaran. Linux biasanya menganggap panjang symlink adalah panjangnya dalam byte, dan Windows menganggapnya mengambil satu atau lebih blok disk, sehingga akan ada ketidaksesuaian ukuran antara sistem operasi. Ini tidak dapat dihindari, karena ukuran adalah salah satu atribut yang digunakan dalam indeks yang tidak dapat dinonaktifkan.


Anda sepenuhnya benar di sini:

  • Hal yang Anda gunakan di sini, yang oleh Git disebut sebagai indeks , area pementasan , atau cache , sebenarnya berisi data cache.

  • Data cache yang dikandungnya adalah hasil dari panggilan sistem.

  • Data panggilan sistem yang dikembalikan oleh sistem Linux berbeda dari data panggilan sistem yang dikembalikan oleh sistem Windows.

Karenanya, sakelar OS sepenuhnya membatalkan semua data cache.

... bagaimana saya bisa menggunakan mengatur file indeks untuk sistem yang berbeda?

Taruhan terbaik Anda di sini adalah tidak melakukan ini sama sekali. Buat dua pohon kerja yang berbeda, atau bahkan mungkin dua repositori yang berbeda. Namun, jika itu lebih menyakitkan daripada alternatif lain ini, cobalah ide berikut:

File indeks sebenarnya yang digunakan Git hanyalah defaultnya .git/index . Anda dapat menentukan berbeda file dengan menyetel GIT_INDEX_FILE ke jalur lain (relatif atau absolut). Jadi Anda dapat memiliki .git/index-linux dan .git/index-windows , dan atur GIT_INDEX_FILE berdasarkan OS apa pun yang Anda gunakan.

Beberapa perintah Git menggunakan indeks sementara. Mereka melakukannya dengan menyetel GIT_INDEX_FILE diri. Jika mereka un -atur setelahnya, mereka mungkin tidak sengaja menggunakan .git/index pada saat ini. Jadi opsi lainnya adalah ganti nama .git/index keluar dari jalan ketika beralih OS. Simpan .git/index-windows dan .git/index-linux seperti sebelumnya, tetapi ubah nama mana saja yang digunakan menjadi .git/index saat sedang digunakan, lalu ganti namanya menjadi .git/index-name sebelum beralih ke sistem lain.

Sekali lagi, saya tidak menyarankan mencoba salah satu dari metode ini, tetapi kemungkinan besar akan berhasil, kurang lebih.


Linux
  1. Cara Mengonfigurasi Server SAMBA Dan Mentransfer File Antara Linux &Windows

  2. Cara mengatur koneksi Wifi-Direct antara Android dan Linux

  3. Apa perbedaan antara panggilan Perpustakaan dan panggilan Sistem di Linux?

  1. Windows – Folder Bersama Antara Qemu Windows Guest dan Linux Host?

  2. Linux – Bagikan File Antara Linux Host Dan Windows Guest?

  3. Sistem file mana yang digunakan di antara OSX dan Linux

  1. Buat koneksi SSH antara Windows dan Linux

  2. Bagikan file antara komputer Linux dan Windows

  3. Kompatibilitas biner antara Mac OS X dan Linux