2014-03-13 8 views
16

Ich habe mehrere chmod in meinem Live-Server laufen. Gerade jetzt, wenn ich eine git diff dort mache, sehe ich viele old mode 100644 new mode 100755Zeige git diff, ignoriere Datei Erlaubnis Änderungen?

Ich habe auch einige Dateien dort geändert. Aber ich würde einfach nur diff Unterschiede anzeigen, um die Änderungen an den Dateien zu zeigen, die Änderungen der Dateiberechtigungen ignorieren.

Wie kann ich das tun? Übrigens möchte ich nicht, dass GIT diese Dateiberechtigungsänderungen ignoriert. Eigentlich möchte ich sie begehen, ich möchte nur, dass git diff sie nicht für einen ganz bestimmten Moment zeigt.

Antwort

7

Dies wird git sagen Berechtigungen zu ignorieren:

git config core.filemode false 

sie in Folge von diff zu filtern, aber nicht ignorieren

git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all 
+4

Ich möchte nicht, dass GIT meine Änderungen der Dateiberechtigungen ignoriert. Ich will git diff, sie nicht zu zeigen ... –

+1

sind eine von diesen tatsächlich eine Lösung? Ich denke, dass ich in der gleichen Situation bin und es scheint, als ob beide Antworten die Berechtigungen ignorieren, die für das Commit relevant sind, nicht nur um die geänderten Dateien zu sehen. – okwme

+3

@HommerSmith, Dies sollte für Ihre Bedürfnisse funktionieren: 'git-c core.fileMode = false diff' Mit freundlicher Genehmigung: http://StackOverflow.com/a/1580644/749232 – saji89

44

git diff -G.

Hinweis: Der Punkt am Ende ist Teil des Befehls.

Sie werden (glaube ich) mindestens Git Version 1.7.10 dafür benötigen. 1.7.2 ist zumindest zu alt.

+0

1.7.9.5 Auch scheint zu alt zu sein :( – ThorSummoner

+13

Der Zeitraum am Ende von "-G." Ist signifikant, falls jemand so dicht wie ich ist und dachte, dass das Ende eines Satzes war. -G sucht ein Regex ("." hier) in hinzugefügten/entfernten Zeilen. – PseudoNoise

+3

Bitte beachten Sie, dass dies eigentlich ein netter Hack ist. Standardmäßig zeigt Git Änderungen an, und dieser Befehl fordert git auf, nur Änderungen anzuzeigen, die mindestens eine Zeile betreffen in der Datei.Dies macht den Job seit der Änderung der Erlaubnis nur keine Zeile beeinflussen.Wie über Binärdateien, und was passiert, wenn eine Datei Änderungen in Inhalt und Berechtigung hat, obwohl? –

Verwandte Themen