Frage

Ich habe eine harte Zeit, ein paar git / DCVS Konzepte zu verstehen. Hier ist, was passiert ist:

  1. Ich habe ein Git-Projekt und importierte sie aus einer SVN-Repo
  2. Ich habe einige Commits
  3. Ich wollte etwas experimentieren, so habe ich einen Zweig namens Konstanten-update
  4. Ich wechselte zu Konstanten-update Zweig, zog einige Dateien gelöscht andere und hinzugefügt viele mehr
  5. I verpflichtet, diesen Zweig
  6. Jetzt versuche ich zu meinem Herrn Zweig wechseln git checkout master mit
  7. Ich habe diesen Fehler: Fehler: Sie haben lokale Änderungen 'src / groovy / Constants.groovy'; kann nicht Zweig wechseln.

Mein Verständnis von DCVS ist, dass ich Zweige nach Belieben wechseln kann, auch wenn einige Zweige mehr oder weniger Dateien als die andere haben, solange ich meine Dateien zu begehen. Ich habe versucht, mit git commit -a begehen und Schaltzweig zu meistern, aber ich habe den gleichen Fehler.

Als Seite beachten, wenn ich verpflichte git warnt mich, dass LF durch CRLF ersetzt werden und warnt mich über einige Hinterwhitespaces auch; nachdem ich mir eine git status und eine Reihe von Dateien erscheinen immer als #modified ... begehen.

Ist das im Zusammenhang / Fenster git , oder verstehe ich nicht richtig, was es soll geschehen? Ich will nur meinen Meister Zweig wechseln ohne meine Änderungen in dem anderen Zweig zu verlieren.

War es hilfreich?

Lösung 3

ich das Problem, Hacking meine pre-commit Haken (diese Zeilen in .git/hooks/pre-commit mit einem # kommentiert):

#       if (/\s$/) {
#       bad_line("trailing whitespace", $_);
#       }

Andere Tipps

Lookup git-Versteck zum Ändern Zweig, während es nicht gespeicherte Änderungen im aktuellen Zweig.

Sie sind richtig in Ihrem Denken darüber, wie diese funktionieren soll.

Allerdings klingt es wie git wird Probleme mit den Zeilenenden haben, und es denkt, dass alle Ihre Dateien auch geändert werden, wenn sie nicht sind. Ich benutze keine git unter Windows, aber ich wollte die „core.autocrlf“ Option schlagen die crlf Handhabung Arbeit zu machen. Allerdings zeigt der folgende Blog-Eintrag, dass dies keine gute Idee sein: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

Verwenden Sie einfach die folgende Option in .gitconfig-Datei, die in Ihrem Benutzer-Verzeichnis befindet.

[core] autocrlf = true

Und es wird das Problem lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top