Abbiamo una base di codice massiccia e antica che richiede molta pulizia. Abbiamo sempre avuto standard di codifica e tutti hanno sempre cercato di seguirli, ma non sono stati applicati, quindi nel tempo sono state violate molte violazioni. Molti di questi sono solo problemi di spazio bianco, come l'uso di tabulazioni anziché spazi o spazi in cui non dovrebbe essere nessuno, o spazi mancanti dove dovrebbero essere. Inizieremo attivamente ad applicare i nostri standard di codifica per assicurarci che non vi siano più violazioni, ma è difficile applicarli in modo automatico solo sulle modifiche, quindi sarebbe bello ripulire questi vecchi file.git: cambia stile (spazio) senza cambiare proprietà/colpa?
Ci sono strumenti che possono automatizzare la risoluzione di questi problemi, tuttavia se lo faccio, allora la colpa mi mostrerà come il proprietario di quelle linee, quando in realtà potrei non averle mai nemmeno viste. So che c'è un'impostazione per far sì che la colpa ignori i cambiamenti dello spazio bianco, ma non posso far sì che tutti facciano la colpa allo stesso modo, inclusi altri strumenti visivi e cose come gitstats. In un mondo ideale ci sarebbe un modo per riscrivere la storia per sembrare che le violazioni non siano mai state introdotte, senza nascondere chi ha introdotto il codice vero e proprio, ma non riesco a trovare nulla di simile.
La cronologia di riscrittura è un po 'imbarazzante: una volta modificati i commit, gli altri dovranno prendere quei cambiamenti. Non fa parte di un flusso di lavoro ideale. Si potrebbe voler esaminare l'applicazione degli standard di codifica utilizzando gli hook.È possibile utilizzare un hook di aggiornamento per eseguire l'applicazione finale quando si preme su un repository centrale, e si può dare agli sviluppatori un hook pre-commit per fare la stessa validazione per loro, e anche riparare automaticamente le cose se è sicuro farlo. (Se vuoi correggere quello che c'è già, lo farei semplicemente in un singolo commit - non c'è bisogno di passare attraverso il mal di testa di riscrivere l'intera storia.) – Cascabel
possibile duplicato di [Git commit che non sovrascrive gli autori originali in git blame] (http://stackoverflow.com/questions/3945382/git-commit-that-doesnt-override-original-authors-in-git-blame) –
Non penso che sia esattamente un duplicato di quella domanda . Nella mia domanda ho affermato esplicitamente che cambiare le bandiere sulla colpa non è adeguato, e la risposta accettata a questa domanda è esattamente quella. –