Baru saja mengubah some.sh
file menjadi file yang dapat dieksekusi ( chmod 755 ...
), izin diperbarui tetapi bukan kontennya. Apakah ada cara untuk mengkomit file ke git, sehingga bit yang dapat dieksekusi akan dikembalikan / ditetapkan pada clone / checkout / pull ?
Pembaruan: bagaimana saya bisa melacak bahwa izin baru telah diserahkan github
?
github
?git status
, saya melihat perubahan ..Artikel @fooMonster bekerja untuk saya
Seperti yang Anda lihat, file tersebut memiliki izin 644 (mengabaikan 100). Kami ingin mengubahnya ke 755:
komit perubahan
sumber
git commit -a
tidak melakukan apa pun untuk saya, namun pengaturan pesan pada baris perintah lakukan. Sedikit# git update-index --chmod=+x script.sh
# git ls-tree HEAD
# git commit -m "Changing file permissions"
# git push
Tidak bekerja untukku.
Mode ini benar, file perms telah diubah, tetapi git mengatakan tidak ada pekerjaan yang harus dilakukan.
Masalahnya tampaknya bahwa git hanya mengenali perubahan izin tertentu.
sumber
git
benar - benar hanya melacak apakah file dapat dieksekusi atau tidak, bukan set lengkap izin * nix. Jadi Anda harus beralih file antara executable / tidak untuk itu untuk berpikir Anda telah mengubah sesuatu yang layak dilakukan ...post-checkout
kaitannyagit
, yang akan mencakup beberapa kasus, tapi saya tidak yakin apakah itu akan mencakup semua hal yang mungkin memperbarui file di worktree Anda. Anda mungkin lebih baik hanya memiliki skrip shell tambahan di repo Anda yang mengatur segala sesuatunya. Atau, ada beberapa proyek di luar sana yang menambahgit
untuk menyimpan metadata, tapi saya belum pernah benar-benar mencobanya ...git update-index --refresh
, tetapi diff menunjukkanold mode 100644 new mode 100755
. Itu tidak memperbarui semua izin