2009-04-14 5 views
1

Bob und Alice haben den ssh Zugang zu einer RemoteMachine, sie arbeiten mit ProjectA zusammen. Angenommen Alice wird zunächst Klon, der ein repos in ihrem Home-VerzeichnisWas ist die beste Vorgehensweise für die Zusammenarbeit mit Git in der folgenden Situation?

RemoteMachine/home/alice/ProjectA 

während Bob repos Alices muss (mit --bare vielleicht besser ist)

RemoteMachine/home/bob/ProjectA 

Bob nicht ProjectA bearbeiten direkt in die RemoteMachine. Also vielleicht will er von seinem Remote-Repos RemoteMachine/home/bob/ProjectA zu LocalMachine klonen (Warum nicht Bob direkt klonen von Alice? Vielleicht möchte Alice direkt von RemoteMachine/home/bob/ProjectA ziehen).

git clone [email protected]:/home/bob/ProjectA LocalMachine/home/bob/PrjA 

Meine Frage ist:

Was ist die beste Praxis ist dies (siehe unten) zu erreichen?

  • kann ich lokal bearbeiten und Push-to-RemoteMachine/home/bob vielleicht mit:

    Local/bob/repos> git push

  • ich den Reset-Befehl in meinem Localmachine kann noch laufen kann reflektieren RemoteMachine/home/bob, die Alice von

    Local/bob/repos ziehen> Reset --hard HEAD^

  • Ich kann holen, was Alice in meiner LocalMachine ändert.

Ich weiß nicht, die, wenn diese Bedürfnisse angemessen sind, so dass, wenn Sie es nicht finden, nur Sie vorschlagen und erklärt, warum. Es ist zu schätzen, wenn Sie in dieser Situation die Workflows mit dem Befehl git anzeigen können.

Antwort

1

Wenn Sie push verwenden, ist es normalerweise am besten, ein drittes Repository zu haben, das mit --bare aus dem Original geklont wurde und von allen Entwicklern dorthin verschoben wurde.

0

Ihr Workflow klingt vernünftig für mich. Du hast Alice und Bob mit ihren eigenen "sharable" Repos auf RemoteMachine, und jeder zieht sich vermutlich von dort zu einer LocalMachine zurück, um weiter zu entwickeln. Wenn sie etwas beenden, das sie teilen möchten, können sie es einfach zu ihrem Repo auf RemoteMachine schieben, wo es für die andere Person sichtbar ist. Eine Sache, die ich denke, Sie weggelassen haben, ist andere Repo von Quinn in QA. Wenn Alice und/oder Bob entscheiden, dass etwas produktionswürdig ist, drängen sie zu Quinns Repo. Quinn nimmt das dann und führt es durch seine strengen Tests und so weiter und schließlich, wenn es passiert, stößt er ein neues Paket aus. Alternativ könnte Quinn eine Art Continuous Integration-Roboter wie Hudson oder CruiseControl sein oder eine solche, die die Autobau- und Testschritte ausführt. Dieses Repo, sei es im Besitz von Quinn oder eines Buildbot, ist wahrscheinlich auch der Ort, an dem Alice und Bob ihre Repos von mit Pulls synchronisieren - es ist der "kanonische" Code, gegen den sich jeder entwickelt.

Der von Ihnen beschriebene Arbeitsablauf ist in Ordnung, soweit es geht. Ich hoffe, diese Antwort hat geholfen.

Verwandte Themen