Ich habe ein paar Fragen zu Dateiberechtigungen in Git gelesen und bin immer noch etwas verwirrt. Ich habe ein Repo auf GitHub von einem anderen gegabelt. Nach dem Zusammenführen sollten sie identisch sein. Jedoch:
$ 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
Ich habe versucht, die Dateiberechtigungen zu ändern, aber die Diff-Ergebnisse werden dadurch nicht geändert.
windows
git
diff
file-permissions
Synesso
quelle
quelle
core.filemode
festgelegt habefalse
), tatsächlich das Ausführungsbit gesetzt ist.--add
aus irgendeinem Grund ein Flag für die Ausführung :git update-index --add --chmod=+x <file>
. Danach war die Datei bereits mit dem chmodVon einer anderen Frage hier zum Stackoverflow: Wie kann ich Git dazu bringen, Änderungen im Dateimodus (chmod) zu ignorieren?
Versuchen:
Von git-config (1) :
quelle
hard
ich versuchte, sie zurückzusetzen. Das hat den Trick für mich getan.Handlicher Einzeiler für Git Bash:
Alle
.sh
Dateien werden als ausführbar markiert . Danach müssen Sie nur nochgit commit
.quelle
Wenn Sie Cygwin git (oder auch Linux git, nehme ich an) verwenden, besteht eine gute Chance, dass Ihre core.filemode-Einstellung auf Projektebene in $ projdir / .git / config festgelegt wurde. Ich stellte fest, dass ich Folgendes tun musste, damit mein Cygwin-Git und mein Windows-Git auf einem Windows-Dateisystem gut koexistieren konnten, ohne dass ständig Änderungen im Dateimodus angezeigt wurden:
Auf diese Weise kann mein Cygwin-Git weiterhin Dateimodusänderungen anzeigen, die normalerweise relevant sind, und das Windows-Git anweisen, die angezeigten Dateimodusänderungen zu ignorieren, die normalerweise falsch positiv sind.
quelle
Ich habe es behoben, indem ich die Dateiberechtigungen in Ubuntu geändert, festgeschrieben, gepusht und alles in Ordnung gebracht habe. Scheint, als würde es mit msysgit unter Windows / NTFS einfach nicht funktionieren.
quelle
Überprüfen Sie zuerst die Dateiberechtigungen mit dem folgenden Befehl.
Ändern Sie dann die Berechtigungen. Hier steht "x" für Ausführungsberechtigungen.
Überprüfen Sie nun die Berechtigungen erneut.
==============================================
Wenn Sie einen Windows-PC verwenden, aber auf einem Linux-Computer bereitstellen. Führen Sie zuerst den folgenden Befehl aus, um die Kompatibilität mit Linux zu gewährleisten
dos2unix scriptname.ext scriptname.ext
quelle
git update-index --chmod=1777 'scriptname.ext'
?