Saya sudah membaca beberapa pertanyaan tentang izin file di Git dan saya masih agak bingung. Saya punya repo di GitHub yang bercabang dari yang lain. Pasca menggabungkan, mereka harus identik. Namun:
$ git diff --summary origin/epsilon master/epsilon
mode change 100644 => 100755 ants/dist/sample_bots/csharp/compile.sh
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/MyBot.coffee
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/ants.coffee
mode change 100644 => 100755 ants/util/block_test.sh
mode change 100644 => 100755 manager/mass_skill_update.py
mode change 100644 => 100755 worker/jailguard.py
mode change 100644 => 100755 worker/release_stale_jails.py
mode change 100644 => 100755 worker/start_worker.sh
Saya sudah mencoba mengubah izin file, tetapi tidak mengubah hasil diff.
windows
git
diff
file-permissions
Synesso
sumber
sumber
core.filemode
mengatur untukfalse
) benar-benar memiliki bit set eksekusi.--add
bendera untuk eksekusi untuk beberapa alasan:git update-index --add --chmod=+x <file>
. Setelah ini, file sudah di atas panggung dengan chmodDari pertanyaan lain di sini di stackoverflow: Bagaimana cara saya membuat Git abaikan file mode (chmod) berubah?
Mencoba:
Dari git-config (1) :
sumber
hard
saya mencoba mengatur ulang. Ini berhasil bagi saya.Satu-liner berguna untuk Git Bash:
Ini akan menandai semua
.sh
file sebagai executable. Setelah itu, Anda hanya perlugit commit
.sumber
Jika Anda menggunakan Cygwin git (atau Linux git juga, saya kira), ada kemungkinan besar pengaturan core.filemode Anda telah ditetapkan pada tingkat proyek dalam $ projdir / .git / config. Saya menemukan bahwa saya harus melakukan yang berikut untuk mendapatkan Cygwin git dan Windows git saya untuk hidup berdampingan dengan baik pada sistem file Windows tanpa perubahan filemode yang tidak ada yang muncul setiap saat:
Ini memungkinkan Cygwin git saya untuk terus melihat perubahan filemode, yang biasanya relevan, sementara memerintahkan Windows git untuk mengabaikan perubahan filemode yang dilihatnya, yang biasanya positif palsu.
sumber
Pertama periksa izin file menggunakan perintah di bawah ini.
Kemudian ubah izin. Di sini "x" mewakili izin eksekusi.
Sekarang verifikasi ulang izinnya.
============================================
jika Anda menggunakan PC Windows, tetapi menggunakan mesin linux. Jalankan perintah di bawah ini di tempat pertama untuk membuatnya kompatibel untuk dijalankan di mesin linux
dos2unix scriptname.ext scriptname.ext
sumber
git update-index --chmod=1777 'scriptname.ext'
?Saya memperbaikinya dengan mengubah izin file di Ubuntu, melakukan, mendorong, dan semua OK. Tampaknya itu tidak akan berfungsi dengan msysgit di Windows / NTFS.
sumber