Frage

Aus verschiedenen Gründen (Code-Review meistens) Ich muß Wechsel von aktuellem Entwicklungszweig zu anderen Zweigen ziemlich oft.

Zur Zeit benutze ich entweder ‚git stash‘ die unbestätigten Änderungen, Check-out anderer Zweig beiseite zu legen, dann wechseln Sie zurück und tut ‚git stash gelten‘

Aber manchmal würde ich dort einige neu hinzugekommene Dateien, die nicht verfolgt werden. Leider hat stashing beeinflussen sie nicht. In diesem Fall würde ich sie auf den Index und Stash hinzuzufügen.

Was ich hier bin für einen Workflow ist, wo ich würde eine minimale Menge von Aktionen auszuführen, um die Zweige zu wechseln, vorzugsweise das Hinzufügen von Dateien in den Index zu vermeiden.

War es hilfreich?

Lösung

Sie können die repo in ein anderes Verzeichnis und standardmäßig auf den Zweig klonen Sie wollen:

# assume your original repo is in myproj
$ git clone myproj myproj_clone --branch my_branch

Wenn Sie dann auf den myproj_clone Ordner gehen, wird es in Ihrer Branche

sein
$ cd myproj_clone
$ git branch
* my_branch

Andere Tipps

Sie können das Repository und Überprüfung / Arbeit auf dem Klon klonen. Löschen Sie den Klon, wenn Sie fertig sind. Wenn Sie geschehen, um Änderungen vorzunehmen auf dem Zweig / Klon, können Sie sie zurück schieben. Ich denke, dass ein lokaler Klon ist billig. Und selbst wenn es nicht, Speicherplatz ist immer noch billiger als Ihre Zeit.

Ich bin nicht sicher, dass das Klonen die richtige Lösung ist, aber seit 2 Antworten vorschlagen, dass es auf dem Gehirn ist, so dass ich über dieses Thema eine Modifikation bin anbieten. Klonen kann nicht billig sein. Im Hinblick auf Speicherplatz, dann ist es irrelevant, aber der Klon selbst einige Sekunden dauern, und das ist zu viel Zeit auf einem unnötigen Betrieb zu verschwenden. Als Alternative können Sie einfach ein neues Verzeichnis mit dem alten git Arbeits dir erstellen. dh wenn Ihr aktuelles Arbeitsverzeichnis „a“ (mit Änderungen und un-inszenierten Dateien), versuchen Sie:

$ mkdir ../b
$ cd ../b
$ echo 'gitdir: ../a/.git' > .git
$ git checkout -f foo

b ist effektiv ein Klon von a, auf einen Ast foo, und Sie haben zwei Arbeitsverzeichnisse bekommen zu spielen. Tun Sie, was Sie brauchen, um auf dem Zweig foo in dir b arbeiten, dann auf ein zurückgehen und Kasse den Zweig Sie waren, als Sie nach links.

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