2017-02-02 1 views
-1

Ich habe viele Commits in meinem Zweig:Revert zurück und Kopie einer Niederlassung in git machen

commit 1 
commit 2 
commit 3 
commit 4 

ich bin begehen 4 und wollen jetzt gehen 2 zu begehen und Inhalt kopieren, die an waren begehe 2 zu einem anderen Zweig.

Grundsätzlich möchte ich Änderungen bei Commit 2 auf den Server schieben, nicht die Änderungen, die bei Commit 4 mit diesem anderen Zweig vorgenommen wurden.

+0

Sind Sie mit Kirsche suchen 2 auf eine Festschreibung Pick separater Zweig? – osowskit

+0

Ja. Aber das Problem ist, dass ich diese Commits in den Stammzweig geschoben habe. – learner

+0

1) Sie könnten die Commits 1,2 und 4 wiederherstellen; 2) verschiebe den aktuellen Verzweigungszeiger um ein paar Commits, heble Commit 2 und erzwinge Push; oder 3) probiere interaktives Rebasting aus. – osowskit

Antwort

0

Sie wollen mynewbranch schaffen, die Punkte 2 Commits hinter:

git branch mynewbranch HEAD~2 

Stattdessen können Sie auch drücken, ohne eine lokale Niederlassung zu schaffen:

git push origin HEAD~2:refs/heads/mynewbranch 
+0

Es kopiert die aktuellen Änderungen , nicht die vorherigen Änderungen. Zum Beispiel, wenn ich einige Dateien in Commit 4 hinzugefügt habe, gibt der obige Befehl auch diese in neuen Änderungen. – learner

+0

'git Zweig mynewbranch HEAD ~ 2' erstellt einen neuen Zweig' mynewbranch', der 2 Commits zurückweist. – rom1v

+0

Lassen Sie mich meine Probleme umschreiben: Ich habe einen Zweig A, ich habe vier Mal gehandelt und es geschoben. Jetzt möchte ich den Inhalt des zweiten Commits in einen anderen Zweig kopieren. Deine Antwort funktioniert nicht. – learner

Verwandte Themen