Mamy ogromny, starodawny kod, który wymaga wielu porządków. Zawsze mieliśmy standardy kodowania i każdy zawsze starał się ich przestrzegać, ale nie były one egzekwowane, więc z czasem doszło do wielu naruszeń. Wiele z nich jest po prostu problemami z białymi znakami, takimi jak używanie zakładek zamiast spacji lub miejsc, w których nie powinno być żadnych lub brakujących miejsc, w których powinny być. Zaczniemy aktywnie egzekwować nasze standardy kodowania, aby upewnić się, że więcej naruszeń nie wkradło się, ale trudno jest wymusić je w sposób automatyczny tylko na zmianach, więc byłoby dobrze wyczyścić te stare pliki.git: zmienić styl (białe znaki) bez zmiany właściciela/winy?
Są narzędzia, które mogą zautomatyzować naprawianie tych problemów, jednak jeśli to zrobię, wtedy wina będzie pokazywać mnie jako właściciela tych linii, podczas gdy w rzeczywistości może nigdy nie widziałem ich. Wiem, że istnieje ustawienie powodujące, że wina ignoruje zmiany w białych znakach, ale nie mogę zmusić wszystkich do obwiniania w taki sam sposób, w tym innych narzędzi wizualnych i takich, jak gitstats. W idealnym świecie byłby jakiś sposób na przepisanie historii, aby wyglądało na to, że naruszenia nigdy nie zostały wprowadzone, bez ukrywania, kto wprowadził rzeczywisty kod, ale nie mogę znaleźć czegoś takiego.
Przepisywanie historii jest nieco niezręczne - po zmianie zatwierdzeń, inne będą musiały wykryć te zmiany. Nie stanowi części idealnego przepływu pracy. Możesz zajrzeć do egzekwowania standardów kodowania za pomocą haków.Możesz użyć haka aktualizacji, aby wykonać ostateczną egzekucję po przejściu do centralnego repozytorium, i możesz dać programistom pre-commit hook, aby zrobić to samo sprawdzanie poprawności dla nich, a nawet automatycznie naprawić rzeczy, jeśli jest to bezpieczne. (Jeśli chcesz naprawić to, co już tam jest, po prostu zrobiłbym to w jednym zatwierdzeniu - nie trzeba przechodzić przez ból głowy przepisywania całej historii.) – Cascabel
możliwy duplikat [Git commit, który nie zastępuje oryginalnych autorów w git winić] (http://stackoverflow.com/questions/3945382/git-commit-that-doesnt-override-original-authors-in-git-blame) –
Nie sądzę, że jest to dokładnie duplikat tego pytania . W moim pytaniu wyraźnie stwierdziłem, że zmiana flag na winy nie jest właściwa, a przyjęta odpowiedź na to pytanie jest właśnie taka. –