Ich kann diese Änderung mit begehen git commitaber es wird mich als Autor aller geänderten Zeilen darin markieren git blame nachdem dieser Commit gemacht wurde.
Gibt es eine Möglichkeit, diese massive Änderung zu begehen, die mich nicht als Autor der geänderten Zeilen markiert, sondern den ursprünglichen Autor beibehält? Das ist eine Menge Geschichte, die wir in unserem Projekt nicht wirklich verlieren wollen.
Unser Zweck beim Ersetzen von Tabulatoren durch 4 Leerzeichen besteht nicht darin, die Dinge in Git-Blamage anders erscheinen zu lassen, sondern den richtigen PEAR-Codierungsstandards zu folgen. B. keine Tabulatoren, verwenden Sie 4 Leerzeichen für den Einzug.
Vielleicht unterstützt der Schuldbefehl eine Option zum Ignorieren von Leerzeichenänderungen.
Notiz: [git blame can now (Q3 2019, Git 2.23) ignore commits](stackoverflow.com/a/57129540/6309à: das könnte hier helfen.
– VonC
21. Juli 2019 um 0:26 Uhr
CodesInChaos
Es liegt nicht in der Verantwortung des begehen Befehl, um zu entscheiden, wie Leerzeichen behandelt werden, aber die Verantwortung der beschuldigen Befehl, weil es ist beschuldigen die die Unterschiede zwischen den Versionen analysiert, um den Autor jeder Zeile zu ermitteln. Suchen Sie also nach einer Option, um Leerzeichen zu ignorieren beschuldigen:
Die Option -w ist wie folgt definiert: “Leerzeichen ignorieren, wenn die Version des Elternteils mit der des Kinds verglichen wird, um herauszufinden, woher die Zeilen stammen.” http://kernel.org/pub/software/scm/git/docs/git-blame.html
Wir versuchen, guten PEAR-Codierungsstandards zu folgen, die auf 4 Leerzeichen für Einrückungen anstelle von Tabulatorzeichen bestehen. Dies macht die Dinge auch für die Vereinheitlichung über OS / IDE-Implementierungen viel schöner …
– nookni
15. Oktober 2010 um 20:22 Uhr
Ich glaube du hast meine Antwort falsch verstanden. Ich sage, dass Sie der Schuld sagen sollten, dass sie die Änderungen im Whitespace (und damit indirekt dieses Commit) ignorieren soll, anstatt zu versuchen, das Commit explizit zu markieren, damit es nicht darin erscheint beschuldigen.
– CodesInChaos
15. Oktober 2010 um 20:32 Uhr
Ja, leider funktioniert Ihre Antwort nur dort, wo die -w Flagge wird tatsächlich verwendet. In IDEs und webbasierten Tools (Github usw.) ist dies nicht der Fall.
– Timmm
21. Februar 2017 um 12:27 Uhr
@Timmmm, das ist ein Fehler dieser Tools. Melden Sie ein Problem in ihren GitHub-Problemen und fordern Sie auf, dass sie (optional?) Whitespace-Änderungen ignorieren.
– Bilderstürmer
20. Juni 2018 um 2:22 Uhr
Jay Parolin
Dank wnoise on git: change styling (whitespace) without change owner/blame? habe ich mir das ausgedacht, um einen willkürlichen Filter für den Git-Verlauf auszuführen, damit Sie den Verlauf so umschreiben können, dass es so aussieht, als wären anstößige Leerzeichen oder andere Probleme aufgetreten Nie begangen, die ursprünglichen Autoren intakt gelassen, aber Ihr Code aufgeräumt: git filter-branch --tree-filter 'git diff-tree --name-only --diff-filter=AM -r --no-commit-id $GIT_COMMIT | php cleanup.php' HEAD
@nookni: Bedeutet das, dass Sie diese Antwort endlich verwendet haben? dann sollten Sie diese als akzeptierte Antwort markieren
– Tobias Kienzler
23. Februar 2011 um 14:43 Uhr
Gibt es in Git Commit keine Möglichkeit, “für jede Zeile im Diff den vorherigen Autor beibehalten” anzugeben? z. B. alle Vorschläge aus einem Style-Linter reparieren und dann die bereinigte Datei übergeben?
– SwimBikeRun
23. Februar 2019 um 17:35 Uhr
Ich denke, dass etwas mehr Lektüre aus meiner Sicht erforderlich ist. Ich verstehe nicht ganz, wie man das benutzt. Also mache ich meine Commits, die alle meine doppelten Anführungszeichen entfernen und durch einfache Anführungszeichen ersetzen, und führe dann diesen Code aus? Oder führe ich diesen Code aus und ändere sie dann: D
– Jamie Hutber
17. April 2019 um 14:57 Uhr
@JamieHutber In meinem Beispiel ersetzt das Skript cleanup.php doppelte Anführungszeichen durch einfache Anführungszeichen
– Jay Paroline
25. April 2019 um 20:34 Uhr
8806100cookie-checkGit-Commit, das die ursprünglichen Autoren in Git-Schuld nicht überschreibtyes
Vielleicht unterstützt der Schuldbefehl eine Option zum Ignorieren von Leerzeichenänderungen.
– CodesInChaos
15. Oktober 2010 um 19:23 Uhr
@CodeInChaos: ja,
-w
kernel.org/pub/software/scm/git/docs/git-blame.html. Machen Sie dies zu einer Antwort– Gabe Moothart
15. Oktober 2010 um 19:30 Uhr
Notiz: [
git blame
can now (Q3 2019, Git 2.23) ignore commits](stackoverflow.com/a/57129540/6309à: das könnte hier helfen.– VonC
21. Juli 2019 um 0:26 Uhr