2009-05-06 6 views
8

Ich muss ein Commit in den Master-Zweig meines Git-Repository einfügen, während die nachfolgenden Merges und Commits erhalten bleiben.Wie füge ich ein Commit mit git ein?

Im Moment habe ich so etwas wie diese

A--B--C--D--E--F  master 
     \  \ 
     G--H I--J branches 

und eine K verpflichten einfügen müssen, so dass die neue Struktur

A--B--K    master 
    \ 
    C--D--E--F  new branch 
     \  \ 
     G--H I--J old branches 

wird Ich bin nicht einmal sicher, ob dies möglich ist. Irgendwelche Ideen?

Antwort

10
git checkout master 
git branch new_branch # copy current branch master to new_branch 
git reset --hard B # now master points to B 
(hack, hack, hack) 
git commit -m K  # K on B in master 
+1

Daraus ergibt sich die erforderliche Struktur - danke! –

2

Benennen Sie den Zweig "Master" in "neue Verzweigung" um. Dann checken Sie das Commit B aus, starten Sie von dort einen neuen Zweig namens "Master" und nehmen Sie Ihre Änderungen vor. Etwas wie folgt sollte es tun (nicht getestet).

git branch -m master new_branch 
git branch master B 
git checkout master 
+0

Vielen Dank für Ihre Antwort. Dies führt dazu, dass Commit A ein Mitglied von "new branch" und nicht "master" ist. Die Geschichte des Meisters wird dann "B - K" und nicht das beabsichtigte "A - B - K". Dieselbe Struktur könnte erreicht werden (mit unterschiedlichen Zweignamen), indem man einfach von B abzweigt und K. bindet. –

+0

@Jason Ich weiß, ich bin 4 Jahre zu spät zur Party hier und dein Konto scheint weg zu sein; aber commit A wäre ein Mitglied von "new_branch" und "master". Es ist ein Baum, und viele Zweige können die gleichen Vorfahren teilen. Natürlich könnte es in der einen oder anderen Weise notiert werden (zB durch 'git log --graph --oneline --all'), aber das ist nur eine Notation -' git log master' und 'git log new_branch' zeigen beides habe A. Es gilt auch für deinen Vorschlag, dieselbe Struktur zu erstellen. – 13ren

0
# git checkout -b new-master B 

Nun sind Ihre Änderungen für K, begehen sie machen und voilá, gibt es die Struktur, die Sie wollen. :)

Verwandte Themen