Switching Branches in GIT mit Arbeitsverzeichnis nicht sauber

Lesezeit: 2 Minuten

Switching Branches in GIT mit Arbeitsverzeichnis nicht sauber
Enrique Moreno Zelt

ich habe geschaut Dieses Video und genau zur Zeit 24:50 heißt es:

Sie können Branches in Git nicht wechseln, es sei denn, Ihr Arbeitsverzeichnis ist sauber

Ich habe dies in einem Test-Repository getestet, eine Datei geändert und einen Zweig gewechselt, und ich konnte es tun! Der Typ arbeitet in GitHub, also bezweifle ich, dass er nicht weiß, wovon er spricht. Hat Git sein Verhalten in letzter Zeit geändert?

Aktualisieren

Das ist mein Protokoll: http://pastebin.com/dFTwHrET

1647175686 746 Switching Branches in GIT mit Arbeitsverzeichnis nicht sauber
Abizern

Das ist eher defensiv.

Wenn Sie nicht festgeschriebene Änderungen haben, die durch das Wechseln von Zweigen überschrieben würden, lässt Git dies nicht zu. Wenn die Änderungen nicht durch den Zweigwechsel beeinflusst werden, hält Sie nichts auf.

Angenommen, Sie haben ein einfaches Git-Repository mit einer einzigen Datei.

Checken Sie einen neuen Zweig aus und nehmen Sie Änderungen am Inhalt dieser Datei vor. Versuchen Sie, ohne die Änderungen zu übernehmen, zurück zum ursprünglichen Zweig zu wechseln. Sie können dies tun, da der Head-Commit derselbe ist.

Checken Sie einen neuen Zweig aus und nehmen Sie Änderungen am Inhalt dieser Datei vor. Bestätigen Sie diese Änderung. Nehmen Sie eine weitere Änderung vor, versuchen Sie jedoch, ohne die Änderungen zu übernehmen, zum ursprünglichen Zweig zurückzukehren. Das wird Ihnen nicht gelingen.

Da Sie Branches nicht wechseln können, verwerfen Sie Ihre Änderungen (git reset --hard head) und fügen Sie dann eine weitere Datei hinzu. Versuchen Sie, ohne diesen Zusatz zu begehen, die Zweige zu wechseln, Sie werden dazu in der Lage sein.

  • Aber das führt nicht zu Konflikten. Anstatt eine einzelne Änderung in Ihrem zweiten Zweig vorzunehmen, übernehmen Sie die Änderung, nehmen Sie dann eine weitere Änderung vor und versuchen Sie, ohne sie einzuchecken, die Zweige zu wechseln.

    – Abizern

    28. März 2014 um 12:16 Uhr

  • Wenn Sie darüber nachdenken, ändert das bloße Wechseln von Branches und das Durchführen einer nicht festgeschriebenen Änderung nichts, da der Head-Commit beider Branches gleich ist. Wenn Sie eine Änderung vornehmen, ist dies nicht mehr der Fall.

    – Abizern

    28. März 2014 um 12:18 Uhr

  • Ich verstehe. Die Aussage des Sprechers gilt also, solange es MINDESTENS 1 Commit mit dem Verzweigungszeiger gibt. Richtig?

    – Enrique Moreno Zelt

    28. März 2014 um 12:19 Uhr

  • (Ich habe meine Antwort erneut aktualisiert). Und das ist irgendwie richtig. Wenn es einen Commit gibt und Sie nicht angegebene Änderungen haben, die durch eine Änderung im Zweig überschrieben werden.

    – Abizern

    28. März 2014 um 12:23 Uhr

  • @TimCastelijns Mach dir keine Sorgen, ich benutze Git buchstäblich seit Jahren und lerne immer noch neue Dinge darüber.

    – Abizern

    28. März 2014 um 12:27 Uhr

Stimme der Antwort von @Abizem zu.

Falls Sie in einen neuen Zweig auschecken möchten, ohne die aktuellen Änderungen im Zweig festzuschreiben. Dann können Sie Stashing verwenden, die Änderungen im aktuellen Zweig mit einer beliebigen Kennung stashen und dann in den neuen Zweig auschecken. Git-Tools-Stashing

997670cookie-checkSwitching Branches in GIT mit Arbeitsverzeichnis nicht sauber

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy