2014-06-13 11 views
13

In meinem Projekt muss ich einige Dateien in Versionskontrolle, CSV-Dateien in diesem Beispiel verfolgen. Aber die Dateien enthalten eine erhebliche Menge an Zeilen und bewirken, dass Github gelegentlich Dateien unterdrückt, die Code-Überprüfung durchlaufen müssen, damit Pull-Anforderungen akzeptiert und zusammengeführt werden.Make github verwenden .gitattributes "binäre" Attribut

Ich versuchte .gitattributes Verwendung solche Dateien im diff werden markieren entweder als Binär-Dateien oder einfach nur nicht diplayed mit:

+*.csv -diff 
+*.csv -merge 
+*.csv binary 

einen nach dem anderen, so dass sie auch kombiniert werden. Das funktioniert perfekt auf diffs auf dem Terminal:

$ git diff HEAD^ 
diff --git a/.gitattributes b/.gitattributes 
new file mode 100644 
index 0000000..8a86f80 
--- /dev/null 
+++ b/.gitattributes 
@@ -0,0 +1 @@ 
+*.csv -diff -merge binary 
diff --git a/AssetsImportCompleteSample.csv b/AssetsImportCompleteSample.csv 
new file mode 100644 
index 0000000..5b20a6e 
Binary files /dev/null and b/AssetsImportCompleteSample.csv differ 

aber, wenn die Verzweigung zu Github und im Vergleich gegen einen anderen Zweig gedrückt wird, ignoriert Github diese Attribute und zeigt die Datei diff als Text, obwohl .gitattributes ist „customizing“ die

github diff view

gibt es eine Möglichkeit, die diff in Github betrachtet die Attribute in .gitattributes zu zwingen, um das Verhalten des diff so anpassen, dass der Unterschied der angegebenen Dateien unterdrückt wird: Art und Weise soll der Unterschied angezeigt werden?

Vielen Dank im Voraus!

Antwort

19

Ich hatte die ähnliche Frage zu Github darum gebeten, dass

Gibt es trotzdem zu unterdrücken .gitattributes die diff der Maschine erzeugten Codes, die versioniert werden muss und nicht durch mit .gitignore Datei ignoriert werden kann?

Die Antwort von sich war

GitHub verwendet .gitattributes Datei nicht für die Entscheidung, welche in einem diff Show-Dateien zu, so ist es nicht möglich, um diese diese Weise zu erhalten.

Die einzige aktuelle Möglichkeit, bestimmte Dateien in einem diff zu unterdrücken, ist die Anzeige haben als „erzeugt“ von Linguist:

https://github.com/github/linguist#generated-file-detection

Wenn Sie das tun wollen, Sie überprüfen müssen aus den Details wie Linguist klassifiziert Dateien als "generierte" und stellen Sie sicher, dass Ihre Dateien qualifizieren. Ich kann nicht sagen, ob dies für die spezifischen Dateien machbar ist, die Sie vom diff unterdrücken möchten.

Also, für jetzt unterstützt Github nicht .gitattributes Datei zu unterdrücken Diff.

0

Hmm ... das war meine Frage auch. Ich habe Visual Studio .sequencediagrams Ich aktualisiere zusammen mit meinem Code, und ich würde es vorziehen, sie nicht in meinen Pull-Request-Diffs angezeigt werden, genau wie Word-Dokumente nicht sind. Die Einstellung von .gitattributes auf binary würde funktionieren. Klingt wie es ist ein Nein.

Zurück zu meiner vorherigen Einstellung - Docs alle gehen in ihr eigenes Repository.Auf diese Weise kann ich den exklusiven Checkout für genau diese Art von Dokument "einfacher zu vermeiden als zu verschmelzen" steuern, während die Dokumentation geöffnet/aktualisiert wird, während ich mich entwickle (was ich nicht tun kann, wenn ich sie einfach in ihren eigenen Zug ziehe anfordern). Ich setze sie nicht in die SAME-Pull-Anfrage, da sich die Prioritäten ändern, einige Pull-Requests für eine Weile aufgesetzt werden und Boom, mehrere Tipps desselben Dokuments/Diagramms/etc.