2016-07-27 3 views
0

Ich bin neu in Git. Ich habe eine Menge unnötiger Verpflichtungen in meiner Branche. Ich möchte den aktuellen Stand der Dateien behalten und alle Commits Geschichte entfernen. Es macht mir nichts aus, den Zweig zurückzusetzen. Was ist der beste Weg, dies zu tun?Git zeigen nur den aktuellen Status der Dateien auf Zweig und löschen Commit-Verlauf

ich denke, das so etwas wie

geschätzt
git stash 
git reset --hard 
git pop 
git add file 
git commit -m 'commit' 
git push -f origin 

Hilfe sein sollte.

Antwort

1

Wahrscheinlich die beste Weg zu tun, was Sie wollen, ist erstens, alle lokalen Änderungen in ein Commit zu verwandeln.

$ git commit -a -m "work-in-progress" 

Dann nutzen interaktive rebase Commits nur zurück zu quetschen, bevor eine gegebene begehen <sha>:

$ git rebase -i <sha>^ 

Interactive rebase bringt mit einer Liste von Commits bearbeitet Fenster. Für jede können Sie eine von mehreren Aktionen angeben, wie , squash, fixup und andere. Wenn Sie für jedes Commit squash setzen, werden sie zusammen ausgewählt und zusammengelegt, und Sie können die Commit-Nachricht bearbeiten, die zunächst auf einer Verkettung ihrer einzelnen Commit-Nachrichten basiert.

Der interaktive Rebase-Workflow ist eine der Funktionen in git, die es wirklich wert ist, gelernt zu werden.

Verwandte Themen