Frage

Ich habe gerade ein großes Stück Code habe ich in mehreren separaten Commits begehen wollen.
Also ich relevante Teile inszenieren kann, verpflichten, Bühne, verpflichten, ... und so weiter, bis ich alle meine Änderungen verpflichtet.

Der fehlende Teil ist, wie kann ich feststellen, ob ich spaltete sich die correcty begehen.
D. h ob der Teil, der in Staging-Bereich zumindest compiliert ist?

Um das zu tun muß ich irgendwie meine Arbeit Baum bringen mit dem Index (Staging-Bereich) synchron zu sein, ohne die Änderungen zu verlieren, später begangen werden.

Was ist der rechts Weg, es zu tun?
Was ist die schnellste Art und Weise, es zu tun?

Update:
Wie es mit magit zu tun?

War es hilfreich?

Lösung

Sie könnte es tun mit:

$ git branch task1 # first set of commit to do

Ein Zwischen Zweig kann nützlich sein, einige Zwischen Commits aufzuzeichnen, wenn Sie langsam einige Inhalte in den Index hinzufügen.

Dann versuchen Sie eine interaktive Sitzung für das Hinzufügen genau das, was Sie wollen:

$ git add -i

Fügen Sie jedes Mal, wenn Sie überprüfen möchten, was Sie hinzugefügt haben:

$ git stash --keep-index

Wenn es kompiliert, git commit Ihre aktuelle Arbeit, und wenn task1 noch nicht abgeschlossen ist, git stash pop die volle Arbeitsbaum und wiederholen wiederherzustellen.

Sobald task1 vollständig gebacken, können Sie trimmen alle, die 'task1' Commits und die ganze Arbeit im Master zusammen:

$ git checkout master
$ git merge task1
$ git branch -D task1 # no need for that intermediate branch

Wenn Sie die Geschichte einiger wichtiger task1 Commits sparen möchten, können Sie zunächst task1 auf der Master-rebase, bevor master in task1 Verschmelzung (vorspulen)

Schließlich, wenn Ihre Stash noch einige unfertige enthält, wiederholen Sie den ganzen Prozess für task2.

Andere Tipps

Hier ist eine magit Weise, die ich verwende:

  • machen Sie Ihren Index für die erste mit magit "u" oder "s" auf der Bühne oder unstage Hunk / files / Region begehen. (Dies kann mit git gui erfolgt auch). Sobald Ihr Index bereit ist, zu begehen:
  • begehen mit "c", schreiben Sie Ihre Commit-Nachricht, Ctrl-C Strg-C zu begehen.
  • Stash mit "z", gefolgt von << >> Enter, dies alles verstauen Sie Ihre Änderung. Um wieder Ihre Änderungen können Sie „A“ verwenden, während Sie den Mauszeiger auf dem richtigen Stash Eintrag ist.

Ihre Tests machen zu überprüfen, ob Ihr begehen gut ist. Wenn eine Änderung vorgenommen werden muss, wiederholen wie vorher, aber drücken Sie Strg-C Strg-A vor commiting während in dem Bildschirm die Nachricht zu begehen. Dies wird ändern (komplett) Ihre letzte verpflichten, anstatt eine neue zu erstellen.

Beachten Sie, wenn Sie herausfinden später, dass einiger Code kommen sollte, ändert ein Commit das ist vor dem letzten Sie getan haben, sollten Sie den Code alles daran setzen, es selbst ist (mit einer temporären Zusammenfassung), und klappen sie in den richtigen Dank verpflichten auf „L“ Bildschirm Zugriffsprotokoll, zeigen Sie den Mauszeiger dann vor beide begehen Sie zerquetschen möchten, und drücken Sie „E“ ein „git rebase -i“ Session zu starten. Nachbestellung die Commits so dass die temporäre Zusammenfassung zu „fix“ ist das Ziel verpflichten. Beenden Sie den Puffer und TADA. Alles getan ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top