2017-08-30 3 views
1

Ich möchte Zweig A in Zweig B zusammenführen, jedoch Zweig A hat ein paar Commits, die Dateien löschen, die Zweig B benötigt. Wenn Sie in Zweig B git merge A verwenden, werden nur die Dateien gelöscht. Wie kann ich Zweig A in B richtig zusammenführen?git merge branch, ignoriere einige commits

+1

Tun Sie stattdessen eine interaktive Rebase, Sie können wählen, welche Commits zu überspringen oder Squash. https://git-scm.com/docs/git-rebase – jonrsharpe

+1

Würden diese spezifischen Commits nur Dateien löschen oder gibt es andere Änderungen in diesen Commits? Sie können als @jonrsharpe tun oder alternativ können Sie wählen, um die genauen commits auszuwählen, die Sie wollen 'git cherry-pick ' siehe https://git-scm.com/docs/git -cherry-pick für einige anständige Beispiele (am Ende) –

+0

@code_fodder guter Punkt; Sie können auch bestimmte Commits während der Rebase bearbeiten. Wenn Sie also nur einen Teil davon haben möchten, können Sie das auch tun. – jonrsharpe

Antwort

0

Wenn Sie einen Merge Commit in Ihrem Verlauf haben möchten (z. B. um zu verfolgen, wie Informationen in Ihrem Projekt verschoben werden), können Sie auch git merge --no-ff --no-commit A verwenden. Dieser Befehl unterbricht den Zusammenführungsprozess kurz vor der Erstellung der Festschreibung und gibt Ihnen die Möglichkeit, den Code zu überprüfen oder einige zusätzliche Änderungen an dieser Festschreibung vorzunehmen.

Sie können die gelöschten Dateien dann mit git reset -- <file> und git checkout -- <file> wiederherstellen.