Ich beginne ein neues Projekt und versuche zu entscheiden, wie ich den Code in Bitbucket organisieren soll. Ich arbeite in einem Startup, wo wir alle technische Erfahrung haben, aber keiner von uns hat in Softwareentwicklungsunternehmen gearbeitet. Wir haben darüber gestritten, wie wir unseren Code am besten in unserem bitbucket-Repository organisieren können.Ist es in Ordnung, zwei verschiedene Arten von Code in demselben git-Repository zu speichern?
Wir haben einige PHP-Code für das Frontend unserer Website, und einige Matlab für das Backend (das Matlab wird eingehalten, um mit dem PHP zu arbeiten, aber ich denke nicht, dass das relevant ist). Der PHP-Code wird ausschließlich für die Website verwendet, aber das Matlab wird von vielen Entwicklern bearbeitet, die Änderungen vornehmen, von denen einige für die Website relevant sind und andere nicht.
Wir haben mit drei Regelungen kommen, wie Sie den Code organisieren:
Schema 1: Legen Sie die Matlab und PHP im gleichen Repository. Verzweige das Matlab in "Website" (a.k.a stabile Hauptfiliale), "Develop1", "Develop2", usw. Die Entwickler arbeiten auf ihrer eigenen Zweigstelle, und periodisch verbinden wir die Develop Zweige in die Website Zweigstelle.
Schema 2: Legen Sie Matlab und PHP in das gleiche Repository. Entwickler, die am Matlab arbeiten möchten, verzweigen das Matlab in andere Repositories und übermitteln dann Pull-Requests, wenn sie ihren Code mit dem Matlab-Code der Website zusammenführen möchten.
Schema 3: Setzen Sie die PHP in ein Repository und das Matlab in ein anderes. Dann verzweigen sich die Entwickler wie oben beschrieben.
Was sind Ihre Gedanken? Der DBA in unserem Unternehmen sagt, dass es eine schreckliche Idee ist, zwei Arten von Code in ein und demselben Repository zu speichern (und irgendwann wären es drei, da wir den Matlab-Code langsam auf C oder eine andere Sprache umstellen würden) . Auf der anderen Seite mache ich mir Sorgen, dass es schwierig sein wird zu verfolgen, welche Versionen für PHP und Matlab miteinander arbeiten, wenn sie sich in separaten Repositories befinden.
las ich eine Reihe von Stellen auf Stack-Überlauf, der meine Fragen teilweise beantwortet:
Das half mir, den Unterschied zwischen den Zweigen und Gabeln zu verstehen - es mir erscheinen würde, dass Zweige einfach mehr Vertrauen in die Entwickler benötigen, da Sie können ohne Erlaubnis oder Code-Überprüfung zusammenführen.
git branch, fork, fetch, merge, rebase and clone, what are the differences?
Dies scheint auf meine Frage sehr nahe, obwohl, wenn ich es mit dem DBA zeigte, sagte er, es ist kein gutes Beispiel ist da Java und Javascript so ähnlich ist. Allerdings geschrieben die Antwort hier scheint mein Schema 1.
How to organize shared code/assets across projects with git repositories
Dies auch darauf hat mir geholfen, im Allgemeinen besser Zweige und git zu verstehen.
http://tom.preston-werner.com/2009/05/19/the-git-parable.html
Diese Antwort scheint auch zu vermuten, dass auch Code, dass keine Dateien gemeinsam nutzen im gleichen Repository sein sollte, wenn es Teil des gleichen Projekts ist.
In Verbindung mit Ihrem letzten Absatz, ist Bitbucket "eine Lösung über Git gebaut"? Ich bin mir nicht sicher, was du damit meinst. – eam55
Bitbucket können Sie Git oder Mercurial ja verwenden. Und jetzt gehört bitbucket zu Atlassian (was auch [Stash] (https://confluence.atlassian.com/display/STASH/Getting+started+mit+Git+and+Stash)). Für professionelle Teams empfehle ich Bitbucket zu vermeiden und Stash zu wählen. –