Właśnie zmieniłem some.sh
plik w plik wykonywalny ( chmod 755 ...
), uprawnienia zostały zaktualizowane, ale nie zawartość. Czy istnieje sposób, aby popełnić plik do git, tak, że wykonywalny nieco zostaną przywrócone / zestaw na klonie / utworu / ciągnąć ?
Aktualizacja: jak mogę śledzić, czy nowe uprawnienia zostały przesłane github
?
github
?git status
, widzę zmiany ..Artykuł @fooMonster zadziałał dla mnie
Jak widać plik ma uprawnienia 644 (ignorowanie 100). Chcielibyśmy zmienić to na 755:
zatwierdzić zmiany
źródło
git commit -a
nic dla mnie nie zrobiło, jednak ustawienie wiadomości w wierszu poleceń zrobiło. Trochę dziwactwa# git update-index --chmod=+x script.sh
# git ls-tree HEAD
# git commit -m "Changing file permissions"
# git push
Nie działa dla mnie.
Tryb jest prawdą, perms pliku zostały zmienione, ale git mówi, że nie ma pracy.
Problem polega na tym, że git rozpoznaje tylko niektóre zmiany uprawnień.
źródło
git
tak naprawdę śledzi tylko, czy plik jest wykonywalny, czy nie, a nie pełny zestaw uprawnień * nix. Musiałbyś więc przełączyć plik między plikiem wykonywalnym / nie, aby pomyśleć, że zmieniłeś coś, co warto popełnić ...post-checkout
haczykgit
, który obejmowałby niektóre przypadki, ale nie jestem pewien, czy obejmie to wszystkie możliwe rzeczy, które aktualizują pliki w twoim środowisku roboczym. Lepiej jest mieć dodatkowy skrypt powłoki w repozytorium, który odpowiednio to wszystko ustawia. Alternatywnie istnieje kilka projektów, które rozszerzajągit
przechowywanie metadanych, ale tak naprawdę nigdy nie próbowałem żadnego z nich ...git update-index --refresh
, ale diff pokazujeold mode 100644 new mode 100755
. Nie zaktualizował wszystkich uprawnień