2013-01-18 7 views
6

Ich verwende GIT und ich arbeite an 2 Aufgaben zur gleichen Zeit. Aufgabe 1 und Aufgabe 2. Jetzt möchte ich auf den Server Task1 schieben. Also übertrage ich alle zugehörigen Dateien von Task 1 (T1) in den Staging-Bereich.GIT - Übersetzen und Testen Staging-Bereich

Meine Staging-Bereich ist bereit, auf den Server geschoben werden, aber bevor ich dies tue, ich denke, es wäre sicher zu überprüfen, ob mein Staging-Bereich kompiliert und bestanden die Tests.

Wie kann ich ein Arbeitsverzeichnis mit dem Staging-Bereich only changes in order to compile it erhalten und die automatisierten Tests ausführen?

Hinweis Ich möchte nicht Tests des Arbeitsverzeichnisses ausführen, nur des Staging-Bereichs ... Da Arbeitsverzeichnis hat Änderungen in Bezug auf T1 und T2.

Antwort

4

Das klingt für mich, als ob Sie git Zweige verwenden sollten. Jede Ihrer Aufgaben wird in einem separaten Zweig entwickelt und Sie können einen vor dem anderen ausführen und vom ersten abgeschlossenen Zweig (Task) zum zweiten zusammenführen.

Weitere Details finden Sie unter here.

+0

Ja, ich weiß. Aber ich würde nur gerne wissen, was in diesem Fall passieren würde, habe ich erwähnt ... – user1990009

+0

Ja, in einigen Fällen ist die Verwendung von Verzweigungen die richtige Antwort, aber nicht immer. Beispielsweise möchten Sie möglicherweise Debugging-Code von der Bereitstellung und dem Festschreiben ausschließen und testen, ob der staged Code ordnungsgemäß erstellt wird und ordnungsgemäß ausgeführt wird. – musiphil

0

Ich habe ein ähnliches Projekt. Ich benutze Zweige, um dies zu erreichen. Ich habe dort einen src Zweig und Code erstellt. sobald alles in Ordnung ist, verbinde ich mich dann und verzweige diesen Punkt zu einem Zweig bin. Wenn kompilieren funktioniert, begehe ich es. dann füge ich den Zweig src in master ein. Diese Methode hält den Zweig master mit nur bekanntem Arbeitscode sauber. und hält den Entwicklercode und die kompilierten Dateien in ihren eigenen autonomen Zweigen (die ich nie dränge).

6

Sie könnten speichern, um alle Ihre nicht verwandten Änderungen in einem Stash zu speichern, führen Sie Ihre Tests aus, und stellen Sie dann die nicht verwandten Änderungen mit git stash pop wieder her. (Wenn ich es wäre, würde ich zuerst lesen man git-stash um sicherzustellen, dass ich alle Schritte in der richtigen Reihenfolge habe.)

+2

Um genau zu sein, was Sie in diesem Fall brauchen, ist 'git stash save - keep-index', der den abgestuften Code intakt hält, während nur die lokale Modifikation verdeckt wird. – musiphil

+0

Aber Vorsicht, wenn Sie nicht geordnete Dateien haben, d. H. Dateien, die Git noch nicht hinzugefügt wurden. Diese werden nicht gespeichert und Sie werden nicht erkennen, ob eine neue Datei zum Kompilieren benötigt wird, aber noch nicht zur Versionskontrolle hinzugefügt wurde. Verwenden Sie den '--include-untracked'switch, um auch diese weg zu verstauen:' git stash save -k -u'. – Florian