Sagen wir, ich habe Zweig und Zweig. In habe ich einige Änderungen in file1, file2 gemacht. Aber, ich habe auch getan, Refactoring auf Dinge, die anscheinend behoben wurden, sagen in FileA, FileB.Wie cherry holen nicht erzwungene Änderungen in einigen Dateien in einen neuen Zweig?
Jetzt möchte ich einen anderen Zweig erstellen, der diese Änderungen in <my_feature>
isoliert, um <my_updates>
mit commits zu nur fileA, fileB zu haben.
Zur Zeit habe ich Änderungen nicht für die Festschreibung in Datei1, Datei2, DateiA und DateiB inszeniert.
Ich habe über git cherry-pick
and git apply
gelesen, aber es beinhaltet Dinge, die bereits begangen werden.
Nun, da keine dieser Änderungen vorgenommen wird, weiß ich nicht, ob ich dies tun und Rosinen pflücken sollte oder ob es einen besseren Weg gibt, damit umzugehen.
Um sicherzustellen, dass das Bild klar ist, lassen Sie uns einige visuelle draus machen:
ich tun wollte:
master ------------------
\--- my_feature ----/
file1
file2
Aber ich habe jetzt
master ------------------
my_feature ----/
file1
file2
fileA
fileB
und ich möchte Um dies zusammenzufassen (Änderungen in DateiA, DateiB), bevor Sie mit <my_feature>
fortfahren:
master ------------------
\--- my_updates ----/
fileA
fileB
So dass <my_feature>
nur die Änderungen in Datei1, Datei2 enthält.
Commit 'file1 'und' file2' in Ihrem Zweig, und checken Sie dann 'master' aus. Die nicht festgeschriebenen Änderungen werden übernommen. – poke
Verwenden Sie Poke-Methode hier, wie es am einfachsten ist. Beachten Sie, dass die Verwendung von "Git Stash" auch funktioniert, aber dies geschieht durch Commits. Sie können selbst Commits machen und die Dinge nach Bedarf kopieren und dann die ursprünglichen Commits "un-make" machen. Das macht im Grunde die gleiche Menge an Arbeit innerhalb von git wie die Verwendung von 'git stash' (da es Commits macht), es ist nur eine Frage dessen, womit du dich persönlich wohlfühlst. – torek