Frage

Ich habe mit git und github mit meinem kleinen team von Entwicklern für unsere Projekte.Ich kann mir nicht helfen, aber denke, dass wir nicht tun es richtig.Ich bin daran interessiert zu hören, wie andere mit diesem workflow innerhalb Ihrer Projekte.

Wie wir es verwenden: Wir Zweig vor jeder änderung, Zusammenführung zurück in den master, commit lokal und drücken Sie auf unserem github-repo.Wir haben dann ssh in unserer Testumgebung und ziehen Sie den master-Zweig von github repo.Wir haben noch nicht ganz Begriffen rebase, fetch oder tagging nur noch.

Wie ich möchte, es zu benutzen: Ich möchte in der Lage sein, ssh in die verschiedenen Servern und ziehen Sie eine bestimmte tagged version, wie die "phase 1" in den server.Ist das möglich, oder brauche ich zwei verschiedene github-repos?

Soll man git pulleinen bestimmten Zweig in der web-Servern oder erstellen Sie einen neuen alias git push zu?

Können Sie die Kontrolle release-Kandidaten oder-Umgebungen (Test, Entwicklung, Herstellung) in einem git-repository?oder tun Sie müssen mehrere?

Wenn das ziehen ist die Lösung, können Sie ziehen eine bestimmte tag ?

War es hilfreich?

Lösung

Grundsätzlich können Sie sehr gut Funktion mit einem "zentralen" GitHub repository.

  • Tags Unveränderbarkeit Zeiger, können Sie verwendet werden (und schob) zu jeder Zeit, um überprüft werden zu jeder Test-oder Produktionsumgebung.Sie ermöglicht, dass einige Validierung stattfinden, aber in der Regel nicht dienen, für die Entwicklung.
  • Ziehen Sie einen Zweig bedeutet, dass Sie können machen einige Entwicklungen innerhalb der Zweig (aufgrund einiger Bugfixes und Anpassungen zu machen, sobald der code auf einer Produktions-Umgebung) und schieben Sie es zurück, für alle anderen Entwickler-repository für Sie nach hinten zu ziehen und berücksichtigen.

Es hängt davon ab, was Sie tun, die auf diesen Servern:nur validation (mit dem status akzeptiert oder abgelehnt werden), oder auch weitere Entwicklungen.
In jedem Fall, einen tag mit einer geeigneten Namenskonvention ist schön zu verfolgen, bestimmte commits in der Geschichte, aber die Zweige sind notwendig, jedes mal wenn Sie brauchen, um zu isolieren, die einen Aufwand bei der Entwicklung.

Andere Tipps

Lesen Sie die Pro Git Buch.Lesen Sie git-man-pages für ein Jahr und immer noch nicht erhalten es:versuchen zu lernen, git durch Lesen der man-pages ist wie der Versuch, eine neue Sprache zu lernen durch das Lesen ein Wörterbuch, es kann getan werden.Das Buch wird Ihnen beibringen, eine Handvoll von workflows können Sie mit git, und welche git-Befehle zu verwenden und in welchem Kontext Sie zu benutzen.

Auf GitHub habe ich ein Konto für mein Unternehmen, das ist, wo die "seligen" code lebt;Ich habe dann das persönliche Gabelung, wo ich an Dingen zu arbeiten, die sind nicht ganz stabil doch.Auf meinem lokalen Rechner, ich Griff, Sie in einer repo, so dass der master ist der gesegnet code (und drückt Konto des Unternehmens), während alle anderen Zweige sind für meine Gabel.Hier ist ein Teil meiner .git/config:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:xiongchiamiov/fourU.git
[branch "hacking"]
        remote = origin
        merge = refs/heads/hacking
[branch "editor"]
        remote = origin
        merge = refs/heads/editor
[branch "problem-utils"]
        remote = origin
        merge = refs/heads/problem-utils
[branch "tests"]
        remote = origin
        merge = refs/heads/tests

[remote "trunk"]
        fetch = +refs/heads/*:refs/remotes/trunk/*
        url = git@github.com:xyztextbooks/fourU.git
[branch "master"]
        remote = trunk
        merge = refs/heads/master

Da ich die commit-Berechtigungen für das Unternehmen repo, kann ich nur verschmelzen (oder cherry-pick) commits von einem Zweig in einen anderen, und schieben Sie es bis an die entsprechende Stelle.Nun, separate repos sind sicherlich nicht notwendig, aber da dieses eine open-source-Projekt, ich mag zu halten die "offizielle" repo frei von zufälligen Zweige erstellt von meiner Tangenten.Sobald er den Punkt erreicht, wo es die Versionierung, es wird eine 0.x Zweig, mit tags für jede version (0.1, 0.1.1, 0.2, etc.), das ist besonders vorteilhaft, weil github automatisch erstellt tarballs der Dateien an jedem tag, gut geeignet für ziehen Sie eine bestimmte version einer Maschine, muss nicht die vollständige Geschichte.

Lesen Sie auf der github blog;Sie hatten einige schöne Beiträge beschreiben Ihre Bereitstellungs-workflow, der natürlich sehr stark involviert git.

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