Git und IntelliJ Zeilen-separator-Problem
Arbeite ich in IntelliJ 15.0.3
und mit Git über Git Bash (commit und push-änderungen). Wenn ich fetch
Datei von einem remote git-repository
es enthält verschiedene line-Trennzeichen ("mixed mode" oder wie es heißt). Ich meine, dass einige Linien enden mit CRLF
und einige Linien enden mit LF
(die gleiche Datei).
Wenn ich ändern in IDEA - Datei wird automatisch gespeichert, und alle line-Separatoren reduziert (geändert) auf die IDEE Standard-line separator (LF
für mich).
Und git behandelt diese änderungen als änderungen an der Datei, dadurch das ich Begehen-Datei mit einer Menge von änderungen wie diese:
- some line
+ some line
Weil some line [CRLF]
wurde geändert, um some line [LF]
.
Konfigurieren Git
um dies zu ignorieren, oder, wie zu konfigurieren IntelliJ IDEA
zu verlassen-Datei in dieser mix-Modus? Ich will nicht, um die änderungen zu übernehmen, wenn es keine änderungen gibt.
- Während der Installation von GIT, es gibt eine option, zu sagen: "checkout as-is, commit as-is", könnte Ihnen das helfen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während der Installation von git, wir haben die option, um die
checkout as-is and commit as-is
.Wenn das nicht gesetzt ist, können wir mit der git config.
Folgenden Befehl hilft Ihnen dabei.
Als pro-Dokumentation:
git checkout -- <some file>
odergit checkout -- *.*
(alle änderungen verwerfen) und Holen Sie wieder.IDEE Delegierten änderungen, die Auflösung von git.
So müssten Sie entweder Kraft, die gewünschten Zeilenumbrüche IDEE oder zu zwingen, die gewünschten Zeilenumbrüche in git.
In meinem Fall
autocrlf true
war bereits auf meinem PC, aber der Arbeitskopie zunächst wurde kopiert von der Kollegin teilen, wo es kontrolliert hatte, mit einer anderen Einstellung.Einem sauberen checkout würde das problem lösen, aber ich hatte bereits einige Dateien verändert und wollte, um Sie zu bewahren.
Dies kann umgangen werden, indem Sie git-index für die ganze Projekt oder nur gewünschte Unterverzeichnis.