In git verstecke ich meine Änderungen. Ist es möglich, dass ich mit dem, was ich verstaut habe, einen Patch erstellen kann? Und dann diesen Patch in einem anderen Repository (dem meines Kollegen) anwenden?
ich weiß git format-patch -1
, aber ich denke, dass es für das ist, was ich begangen habe. Aber ich suche das Gleiche für Änderungen, die ich versteckt habe.
Und wie kann ich einen Patch in einem anderen Repository anwenden?
man patch
und keine Optionen für interaktive Patch-Anwendungen gesehen. Da Patch-Dateien selbst reine Textdateien sind, wird der Patch normalerweise in einem Texteditor bearbeitet, um die relevanten Teile auszuschneiden, mit denen angewendet werden sollpatch
. Wenn Sie den Patch auf ein anderes Git-Repository anwenden, können Sie alternativ alles anwenden und dann selektivgit checkout
Dateien, die Sie nicht ändern möchten (git checkout
mit einem Dateinamen werden nicht bereitgestellte Änderungen verworfen).git add --interactive ${YOUR_FILES}
Sie dies dann. Dadurch haben Sie die Möglichkeit, sich teilweise zu verpflichten.git stash show -p stash@{1} > patch.txt
Diese Antwort enthält Informationen zum Speichern und Anwenden des Patches an der Stelle, an der Sie ihn verwenden möchten.
So speichern Sie die Ausgabe in einer Datei:
Überprüfen Sie, ob der Patch gut aussieht:
Überprüfen Sie keine Fehler:
Wenden Sie den Patch an
quelle
git apply --check --ignore-space-change --ignore-whitespace my-patch-name.patch
Wenden Sie den Patch an:git apply --ignore-space-change --ignore-whitespace my-patch-name.patch
git apply
habe ich das Diff nicht aufgenommen.Verwenden
um eine Liste Ihrer kürzlich verstauten Sachen zu bekommen. Git erstellt tatsächlich Commit-Objekte, wenn Sie diese verstecken.
Sie sind Commits wie alles andere. Sie können sie in einer Filiale auschecken:
Sie können diesen Zweig dann veröffentlichen und Ihr Kollege kann dieses Commit zusammenführen oder auswählen.
quelle
Die oben genannten Lösungen funktionieren nicht für Binärdaten. Folgendes fügt Unterstützung dafür hinzu:
Bearbeiten
Hinweis: Ich wollte den obigen Antworten nur einen Kommentar hinzufügen, aber mein Ruf reicht nicht aus.
quelle
Ich glaube, dies könnte eines der Udpates von Git in letzter Zeit sein. Sie müssen die Änderungen, die Sie gespeichert haben, nicht mehr patchen. Sie können Ihre versteckten Änderungen einfach auf einen Zweig auf einen anderen anwenden.
Sagen Sie in Zweig A, dass Sie einige Änderungen gespeichert haben, die als stash @ {1} bezeichnet werden.
Sie wechseln jetzt zu Zweig B. Sie können einfach Folgendes tun:
Dadurch wird Ihr Zweig A auf Zweig B geändert.
quelle