503 Stimmen

Überprüfen Sie einen anderen Zweig, wenn es nicht überprüfte Änderungen im aktuellen Zweig gibt

Die meiste Zeit, wenn ich versuche, zu einem anderen vorhandenen Branch zu wechseln, erlaubt mir Git es nicht, wenn ich einige nicht committete Änderungen auf dem aktuellen Branch habe. Also muss ich diese Änderungen zuerst committen oder weglegen.

Gelegentlich erlaubt mir Git jedoch, zu einem anderen Branch zu wechseln, ohne diese Änderungen zu committen oder wegzulegen, und es übernimmt diese Änderungen in den Branch, den ich wechsle.

Was ist hier die Regel? Spielt es eine Rolle, ob die Änderungen inszeniert oder nicht inszeniert sind? Das Übertragen der Änderungen in einen anderen Branch macht für mich keinen Sinn, warum erlaubt es git manchmal? Das heißt, ist es in einigen Situationen hilfreich?

1voto

Alf Punkte 11

Ich habe auch eine Weile mit diesem Ding gekämpft und möchte meine Meinung zur Antwort geben. Erstens stammt mein Verständnis der Angelegenheit von hier: https://medium.com/swimm/a-visualized-intro-to-git-internals-objects-and-branches-68df85864037

Die Frage war:

Gelegentlich erlaubt Git mir jedoch, einen anderen Branch auszuchecken, ohne diese Änderungen zu committen oder zu stashed, und es wird diese Änderungen in den ausgewählten Branch übernehmen.

Was ist hier die Regel? Ist es wichtig, ob die Änderungen gestaged oder unstaged sind? Das Übertragen von Änderungen in einen anderen Branch macht für mich keinen Sinn, warum erlaubt git es manchmal? Das heißt, ist es in einigen Situationen hilfreich?

Wenn du einen Branch aus einem anderen Branch erstellst, erstellst du nur einen Pointer zum selben Commit, also solange du keine Änderung committet hast, an der du gearbeitet hast, wird auf denselben Commit gezeigt, und daher wird es git erlauben, auf diese Weise Branches zu wechseln. Erst wenn du eine Änderung im neuen Branch committest, beginnen sich die Commits zwischen den Branches zu unterscheiden und git wird sich beschweren, wenn du versuchst, diese Branches auszuchecken, wenn es uncommittete Änderungen gibt.

0voto

Kacpero Punkte 11

Falls du diese Änderungen überhaupt nicht übernehmen möchtest, führe git reset --hard aus.

Anschließend kannst du zum gewünschten Branch wechseln, aber bedenke, dass nicht übernommene Änderungen verloren gehen.

0voto

apio Punkte 124

Wenn Sie einen Zweig von einem vorhandenen erstellen möchten, nachdem Sie nicht bestätigte Änderungen darin vorgenommen haben, sodass diese Änderungen auch im neuen Zweig nicht bestätigt sind, geben Sie git checkout -b ein. Dadurch wird ein neuer Zweig erstellt, in den Sie Ihre Änderungen übernehmen können.

0voto

Zhanserik Punkte 2118

Sie können es erreichen, indem Sie dies tun:

  1. Alle Dateien wiederherstellen
  2. Einen anderen Branch auschecken
  3. Änderungen in den aktuellen Branch (nicht den Stash) übernehmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X