Przeczytałem kilka pytań dotyczących uprawnień do plików w Git i nadal jestem trochę zdezorientowany. Mam repozytorium na GitHub rozwidlone z innego. Po scaleniu powinny być identyczne. Jednak:
$ 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
Próbowałem zmienić uprawnienia do plików, ale nie zmienia to wyników różnic.
windows
git
diff
file-permissions
Synesso
źródło
źródło
core.filemode
ustawiłemfalse
), faktycznie mają ustawiony bit wykonania.--add
flagę z realizacją jakiegoś powodu:git update-index --add --chmod=+x <file>
. Po tym plik był już na etapie z chmodZ innego pytania na temat stackoverflow: Jak sprawić, by Git ignorował zmiany trybu plików (chmod)?
Próbować:
Z git-config (1) :
źródło
hard
próbowałem zresetować. To załatwiło sprawę dla mnie.Poręczna jedna linijka do Git Bash:
Oznaczy wszystkie
.sh
pliki jako wykonywalne. Potem po prostu musiszgit commit
.źródło
Jeśli używasz Cygwin git (lub Linux git, jak zakładam), istnieje duża szansa, że ustawienie core.filemode zostało ustawione na poziomie projektu w $ projdir / .git / config. Zauważyłem, że muszę wykonać następujące czynności, aby mój Cygwin git i mój system Windows git dobrze współistniały w systemie plików Windows bez nieistniejących zmian w trybie pliku wyświetlanych przez cały czas:
Dzięki temu mój Cygwin git może nadal widzieć zmiany w trybie pliku, które zwykle są istotne, jednocześnie instruując git systemu Windows, aby zignorował zmiany w trybie pliku, które widzi, które zwykle są fałszywymi alarmami.
źródło
Najpierw sprawdź uprawnienia do plików za pomocą poniższego polecenia.
Następnie zmień uprawnienia. Tutaj „x” oznacza uprawnienia do wykonywania.
Teraz ponownie zweryfikuj uprawnienia.
==============================================
jeśli używasz komputera z systemem Windows, ale wdrażasz na komputerze z systemem Linux. Wykonaj poniższe polecenie w pierwszej kolejności, aby było kompatybilne z systemem Linux
dos2unix nazwa skryptu.ext nazwa skryptu.ext
źródło
git update-index --chmod=1777 'scriptname.ext'
?Naprawiłem to, zmieniając uprawnienia do plików w Ubuntu, zatwierdzanie, wypychanie i wszystko OK. Wygląda na to, że po prostu nie działałoby z msysgit na Windows / NTFS.
źródło