2016-04-08 11 views

Antwort

2

Sie zurück zurücksetzen können zwei Commits mit vor

git reset --mixed HEAD~2 

Dies wird den Zweig zurückgesetzt, sondern alle Änderungen, diese beiden Commits zu halten. Dann fügen Sie einfach und begehen, was Sie

git add <important folder> 
git commit -m'added important folder' 
+0

anzuwenden --soft alle Änderungen ‚hinzugefügt‘ bereits verlassen würde, wäre besser --mixed wird – FazoM

+0

Ja --mixed könnte für diesen Fall besser funktionieren. Ich werde die Antwort aktualisieren. –

2

einfach sparen müssen aufhören, darüber nachzudenken in den Verdingungs „Entfernen Commits“. Ich würde sagen:

Notieren Sie sich die aktuellen Commit-ID:

git log |head -n1 

zurück zwei Commits gehen,

git checkout HEAD~2 

dann nur

Ihr Verzeichnis
git checkout <noted ID> -- yourdirectory/ 

Check-out und begehen das Ergebnis:

git commit -m "kept the future of yourdirectory/" yourdirectory 

Und wenn Sie wirklich mit einem bestehenden verpflichten einmischen möchten, verwenden Sie

git rebase -i HEAD~10 

diese beiden Commits zu quetschen.

Wenn Sie wirklich wollen (müssen Sie nicht) können Sie git prune das Dangling Commits später.

+0

Ich denke, es sollte HEAD sein ~ 2 nicht HEAD ~ 3 - zwei commits zurück – FazoM

+0

wahr, du hast Recht. –

0

git rebase -i HEAD~2 können Sie die letzten 3 Commits bearbeiten.

Sie wollen wahrscheinlich den Squash-Befehl auf dem interaktiv Shell

Verwandte Themen