2014-06-13 12 views
13

Nel mio progetto, ho bisogno di tracciare alcuni file nel controllo di versione, file CSV in questo esempio. Ma i file contengono una quantità considerevole di righe e causano la sospensione occasionale di Github dei file che devono passare attraverso la revisione del codice affinché le richieste pull vengano accettate e unite.Make github use .gitattributes "binary" attribute

Ho provato ad utilizzare .gitattributes per contrassegnare tali file sia come binari o semplicemente di non essere diplayed nel diff utilizzando:

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

una alla volta, così come la loro combinazione. Questo funziona perfettamente su diff sul terminale:

$ 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 

ma quando il ramo è spinto a Github e confrontato con un altro ramo, Github ignora questi attributi e visualizza il file diff come testo, se .gitattributes è "personalizzazione" del modo in cui il diff dovrebbe essere visualizzato:

github diff view

c'è un modo per forzare il diff in Github considerare gli attributi in .gitattributes per personalizzare il comportamento del diff in modo che il diff dei file indicato è soppressa?

Grazie in anticipo!

risposta

19

avevo posto la domanda simile a Github che

Esiste un modo per sopprimere utilizzando .gitattributes il diff della macchina codici generati, che deve essere di versione e non può essere ignorato da utilizzando .gitignore di file?

La risposta da loro era

GitHub non usa .gitattributes file per scegliere quali file da spettacolo in un diff, quindi non è possibile ottenere intorno a questo in questo modo.

L'unico modo corrente per eliminare alcuni file in un diff, è quello di avere la classificati come "generato" dal linguista:

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

Se si vuole fare questo, si avrebbe bisogno di controllare i dettagli di come Linguist classifica i file come "generati" e assicurati che i tuoi file siano idonei. Non posso dire se questo è fattibile per i file specifici che sei interessato a sopprimere dal diff.

Quindi, per ora Github non supporta il file .gitattributes per sopprimere eventuali diff.

0

Hmm ... questa era la mia domanda pure. Ho lo studio visivo .sequencediagrams che aggiorno insieme al mio codice, e preferirei che NON vengano visualizzati nelle mie differenze di richiesta pull proprio come i doc di parole non lo sono. L'impostazione del pensiero .gitattributes to binary funzionerebbe. Sembra che sia un no.

Ripristino alla mia preferenza precedente - docs ALL andare nel proprio repository.In questo modo posso controllare il checkout esclusivo solo per questo tipo di documento "più facile da evitare che unire" pur mantenendo la possibilità di avere la documentazione aperta/aggiornata MENTRE sviluppo (cosa che non posso fare se li metto nel loro pull personale richiesta). Non li metto nella richiesta di pull SAME perché quando le priorità cambiano, alcune richieste di pull vengono sedute per un po 'e boom, più suggerimenti dello stesso documento/diagramma/ecc.