Ignora determinate modifiche in git diff


2

È possibile ottenere un report da git diff o comandi correlati che escludono una determinata categoria di modifiche?

Mi è stato chiesto di esaminare una modifica in cui un numero enorme di file ha subito l'equivalente di s / 2016/2017 / g. (Abbiamo aggiornato un jar di terze parti e di conseguenza molte delle nostre importazioni fanno ora riferimento a un pacchetto diverso).

Ci sono opzioni per visualizzare questa diff dalla riga di comando, ma sopprimere tutte le modifiche che consistono solo in qualcosa del tipo seguente, in modo che io possa concentrarmi su eventuali modifiche logiche?

Ignorare:

-import com.example.2016_2.util.Utility
+import com.example.2017_2.util.Utility

Conservare:

-Utility util = new Utility();
+Utility util = Utility.create();

Se la risposta è scrivere il mio script e integrarlo tramite git diff --porcelain o impostando GIT_EXTERNAL_DIFF, Sono certamente un gioco; mi chiedo solo se

  1. questo è supportato fuori dagli schemi e in qualche modo l'ho perso nella pagina man;
  2. ci sono altri comandi git diff * che posso usare per questo;
  3. se esiste già un eseguibile diff appropriato che posso fornire via GIT_EXTERNAL_DIFF

--word-diff e --word-diff-regex potrebbe essere utile semplicemente evidenziando le modifiche nel 2016/2017 senza mostrare la riga intera come modificata.
Patrick Mevzek

Risposte:


0

Ci sono molti modi per diff file, git diff va bene ma ce ne sono altri. Di fronte allo stesso compito, vorrei:

  • controlla il codice con le modifiche successive
  • copia l'intero albero del codice in un'altra directory
  • ripristinare la modifica 2016/2017 in quella copia
  • nell'albero git, controlla lo storico commit
  • fare un confronto ricorsivo tra i due alberi (BeyondCompare su Windows, kdiff3 su Linux)

Farei lo stesso, ma solo utilizzando git: crea un nuovo ramo temporaneo basato su new, ripristina il commit di sostituzione e confronta old. In questo modo git può aiutarti rilevando le mosse / i nomi E puoi usare il tuo IDE.
A.H.

"copia l'intero albero del codice in un'altra directory" che puoi usare git worktree caratteristica per quello
Patrick Mevzek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.