2016-10-03 2 views
0

Ich habe einen Zweig, der wie dieserWie überschreiben Sie ein Commit mit einem getrennten HEAD-Commit?

---A-----------B 
    \ 
    \ 
     C (Detached HEAD) 

ich es durch diesen Prozess bekam aussieht:

git checkout branch 
git checkout HEAD~ 
git commit -m "C" 

und ich möchte CB zu überschreiben (verwerfen alle Änderungen in B)

Beste wäre ohne merging temp-Zweig, weil ich möchte, dass das Zweig-Diagramm so einfach wie möglich aussehen

+0

Verfolgen Sie C sha1, 'git Checkout-Zweig; git reset Csha1 --hard'. – ElpieKay

Antwort

2

Erzwingen Sie das Löschen der branch und erstellen Sie Zweig auf der C Commit. Drücken Sie Push, wenn sich die Verzweigung in einem Remote-Repository befindet.

Wenn Sie das Commit wiederholen können (d. H. Sie haben ein Diff gespeichert), können Sie HEAD des Zweigs auf HEAD~ zurücksetzen und das Commit ausführen.

0
git checkout <C> 

git branch -D branch 

git checkout -b branch 

Ihr Diagramm wird geworden:

---A-----C <== branch 
    \ 
    \---B 

Wenn B bereits im Remote-Repository ist, verwenden Sie "git push -f" die Push zu erzwingen. B wird in Zukunft Müll gesammelt werden.

Verwandte Themen