Ausführliche Erläuterung des Befehls git cherry-pick

git Cherry-Pick-Befehl

Wenn Sie den Code von einer Verzweigung in eine andere Verzweigung verschieben möchten, ist die übliche Praxis die mergeor rebase-Anweisung, aber wenn Sie ein Commit (oder einige) einer Verzweigung in eine andere Verzweigung verschieben möchten, müssen Sie die cherry-pickAnweisung .

1. Übertragen Sie ein Commit

Beispielsweise gibt es im Lager master, feature-newund feature-oldFilialen , wie in der folgenden Abbildung dargestellt:

Bild-20220303215735790

Jetzt möchten feature-oldSie den G-Commit von Zweig zu feature-newZweig anwenden. Führen Sie den folgenden Befehl aus:

# 假设现在在master分支

# 从master分支切换到feature-new(要接收别的分支某次提交转移的分支)
git checkout feature-new

# 执行转移操作:git cherry-pick <commitHash>
git cherry-pick G

Nach dem Ausführen des obigen Befehls sieht die Codebasis wie folgt aus:

Bild-20220303220039205

Das heißt , ein neuer Commit G wurde am Endefeature-new des Zweigs hinzugefügt.

Hinweis: cherry-pick Der Parameter der Anweisung muss nicht der Hash-Wert des Commits sein, und der Zweigname ist ebenfalls akzeptabel, was darauf hinweist, dass der letzte Commit des Zweigs übertragen wird , wie folgt:

# 将feature-old分支的最新一次提交H转移到当前分支
git cherry-pick feature-old

2. Übertragen Sie einige Commits

git cherry-pick <commitHashA> <commitHashA> 

Der obige Befehl wendet zwei Commits A und B auf den aktuellen Zweig an, was zu zwei entsprechenden neuen Commits im aktuellen Zweig führt.

Wenn Sie eine Reihe aufeinanderfolgender Commits übertragen möchten, können Sie die folgende Kurzschreibweise verwenden:

git cherry-pick A..B

Der obige Befehl kann alle Commits von A nach B übertragen , sie müssen in der richtigen Reihenfolge platziert werden: Commit A muss vor Commit B liegen, sonst schlägt der Befehl ohne Fehler fehl.

Hinweis: Mit dem obigen Befehl wird Commit A nicht cherry-pickin . Wenn Sie Commit A einschließen möchten, können Sie die folgende Syntax verwenden:

git cherry-pick A^..B 

3. Codekonflikt

3.1 --weiter

git cherry-pick --continue

Nachdem der Benutzer den Codekonflikt gelöst hat, fügen Sie zuerst die geänderte Datei erneut dem temporären Speicherbereich ( git add .) hinzu und verwenden Sie dann den obigen Befehl, um den cherry-pickProzess fortzusetzen.

3.2 --abbruch

git cherry-pick --abort

Brechen Sie nach einem Codekonflikt die Zusammenführung ab und kehren Sie zu dem Zustand vor der Operation zurück.

3.3 --beenden

git cherry-pick --quit

Beenden Sie nach einem Codekonflikt cherry-pick, aber kehren Sie nicht zu dem Zustand vor der Operation zurück.

Ich denke du magst

Origin blog.csdn.net/weixin_49343190/article/details/123265405
Empfohlen
Rangfolge