2016-03-22 5 views
0

Gibt es eine Möglichkeit, einen diff-Patch oder ähnliches anzuwenden, ohne einen Commit/Checkout durchzuführen?Git: Arbeitsbereiche (Computer) ohne commit wechseln


Meine Situation: schalte ich oft Computer zwischen bei der Arbeit, und meine begehen Geschichte hat eine Reihe von „Schalt Maschinen“ -Nachrichten.

Meine erste Vermutung ist, dass dies zu anderen Problemen führen könnte, aber ich dachte, ich könnte fragen, ob es eine geeignete Lösung oder einen geeigneten Workflow für diese Situation gibt.

Bearbeiten - Erläuterung: Computer sind vernetzt.

Edit - tiefere Gedanken: Jetzt, wo ich darüber nachdenke, würde dies einige größere Probleme mit der Revisionshistorie verursachen, wenn ich nicht durch Git gehe. Aber vielleicht gibt es eine andere Workflow-Lösung, an die ich nicht gedacht habe?

+0

Sind die Maschinen in irgendeiner Weise vernetzt? – TriskalJM

+0

@TriskalJM Ja, sie sind –

+1

Wenn sie vernetzt sind, scheint die Arbeitskopie in einem freigegebenen Netzlaufwerk das Problem eines überladenen Commit-Protokolls zu lösen. – TriskalJM

Antwort

1

Hinzufügen dieser als eine richtige Antwort, so dass es akzeptiert werden kann.

freigegebenen Netzlaufwerk

Da die Maschinen vernetzt sind, setzen Sie Ihre Arbeitskopie auf einem gemeinsam genutzten Netzwerkressource. Dies würde die Notwendigkeit des Commits vor dem Wechsel der Arbeitsstationen beseitigen.

+0

Was passiert mit diesem Ansatz, wenn Sie auf einem Computer zu einem anderen Zweig wechseln? –

+0

Die Arbeitskopie (die sich auf der Netzwerkfreigabe befindet) befindet sich jetzt in der anderen Verzweigung. Bevor Sie das tun, müssen Sie sich verpflichten oder verstecken, aber Sie müssen das trotzdem tun. – TriskalJM

5

Eines der schönen Dinge an Git ist, dass das Committing unabhängig vom Publishing ist. So können Sie Work-in-Progress-Commits festschreiben, ohne sie veröffentlichen zu müssen und eine "unordentliche Geschichte" für immer aufzubewahren.

Mein Vorschlag wäre, weiterhin die Commits beim Wechseln der Arbeitsbereiche zu machen, da dies eine solide Sicherung der Zeitpunkte ergibt und die Arbeitsbereiche nicht mehr ständig vernetzt sind (effizientes Arbeiten mit einem Laptop zum Beispiel).

Um die Lösung der unordentlichen Geschichte aufgrund der Commit "Schaltarbeitsbereiche" zu lösen, würde ich vorschlagen, dass Sie Zweig Zweige oder "dev" Zweige arbeiten, und wenn eine Funktion abgeschlossen ist alle zusammendrücken commits zusammen und dann füge die neu aufgeräumte Geschichte auf den Hauptzweig zusammen.

Das Ausführen von git rebase -i master auf Ihrem Zweig Zweig wird Sie gruppieren und quetschen Ihre Commits, um ordentlich Geschichte vor dem Zusammenführen zu Master und Pushing auf "endgültige Geschichte" zu bekommen.

+0

Dies ist meiner Meinung nach die vielseitigste Lösung und verwendet git selbst, um das Problem zu lösen. Ich könnte meinen eigenen Arbeitszweig behalten und ihn zum Navigieren in Funktionen und Arbeitsbereichen verwenden. Danke für diesen Vorschlag. Ich werde das definitiv zu meinem Workflow hinzufügen. –