Ich bin sehr neu bei GIT / GitHub (so neu wie gestern). Ich würde gerne wissen, wie sich mehrere Personen, die mit Github an einem Projekt arbeiten, am besten verwalten lassen. Derzeit leite ich ein Projekt mit vier Entwicklern.
Wie gehe ich beim Workflow vor und stelle sicher, dass alles synchron ist?
(Hinweis: Alle Entwickler haben ein universelles Konto.)
Muss sich jeder Entwickler in einem anderen Zweig befinden?
Kann ich mit 2 Personen arbeiten, die an derselben Datei arbeiten?
Bitte poste eine ausführliche Antwort, ich bin kein schüchterner Leser. Ich muss das gut verstehen.
Antworten:
Wenn alle Entwickler Commit-Zugriff auf das Repo haben, sollten Sie nichts Besonderes tun müssen. Sie werden Änderungen aus dem Repo ziehen, ihre eigenen Änderungen vornehmen, lokal festschreiben und dann in das öffentliche Repo zurückschieben, wenn etwas funktioniert.
Wenn Sie andererseits einen (oder mehrere) Entwickler haben, die für das Commit des Repos verantwortlich sind, und die anderen Patches für diese bereitstellen. Lassen Sie jeden von ihnen das Repo in ihre eigenen Konten klonen und Pull-Requests senden, wenn er eine Änderung am Haupt-Repo wünscht.
Wenn Sie möchten, können Sie auch bestimmte Klone erstellen, um an bestimmten Funktionen zu arbeiten. Verwenden desselben Workflows mit Pull-Requests, um Änderungen am Haupt-Repo zu erhalten, wenn die Funktion abgeschlossen ist.
Wenn mit "Alle Entwickler haben ein universelles Konto" gemeint ist, dass alle Entwickler ein GitHub-Konto teilen und als derselbe Committer im Repo erscheinen, ist das eine schlechte Idee. Erstellen Sie separate Konten und richten Sie sie als Mitbearbeiter ein, wenn Sie möchten, dass alle über Commit-Zugriff verfügen.
Für Ihre spezifischen Fragen:
Nein, verwenden Sie Verzweigungen für Funktionen, Korrekturen usw., für die mehr als ein Commit erforderlich ist. In einem Zweig können mehrere Entwickler arbeiten.
Ja, git behandelt Konflikte sehr gut, so dass es keine Probleme gibt, wenn Leute an derselben Datei arbeiten. Keine Probleme außer, die Konfliktlösung ist möglicherweise nicht immer trivial, wenn grundlegende Änderungen an einer Datei vorgenommen wurden, die von mehr als einem Mitglied bearbeitet wurde. Dies ist jedoch nichts, was durch ein gemeinsames Gespräch nicht überwunden werden kann. Die Versionskontrolle ersetzt nicht die Kommunikation.
Viel Glück!
quelle
git fetch upstream
gefolgt von verwenden,git merge upstream/branch
sollten Sie synchronisiert werden, ohne den lokalen Festschreibungsverlauf neu zu schreiben. Wenn dies kein Problem ist,git pull --rebase
werden Ihre lokalen nicht beschleunigten Änderungen einfach in den oberen Bereich des Upstream-Zweigs verschoben.Wir arbeiten mit 2 Entwicklern und verwenden diesen Workflow:
quelle
Ich sehe hier nur Textantworten, daher dachte ich, ich würde zuerst ein Bild von einem netten Gitflow posten. Ein Bild beschreibt mehr als tausend Wörter:
quelle
Ich arbeite mit 3 anderen Entwicklern zusammen und wir haben einiges damit zu tun. Manchmal bringen Entwickler Commits in die Produktion, die noch nicht zur Hauptsendezeit bereit sind, weil sie andere Commits in ihre Änderungen einbinden und dann in die Produktion einbinden. Versionszweige scheinen für uns in Ordnung zu sein. Wenn also Version 1.0 die aktuelle stabile Version ist, erstellen wir einen Zweig für die v1.1-Entwicklung. Die Entwickler werden Änderungen in diesem Zweig vornehmen. Unser Testserver checkt diesen Zweig aus und ruft nach Bedarf Änderungen ab. Wenn alle Funktionen für Version 1.1 fertig sind und der Test abgeschlossen ist, werden wir Version 1.1 mit Master und Push zusammenführen. Mit Verzweigungen kann Entwicklerteam A an Version 1.1 und Entwicklerteam B an Version 1.2 arbeiten. Beide Teams können arbeiten, ohne sich gegenseitig zu beeinflussen. Wenn Team A etwas entwickelt, das B verwenden kann,
Wir verwenden auch einen Hotfix-Zweig, der für sofortige Änderungen verwendet wird.
Hier ist ein Link zu einem Bild, wie das aussieht. http://nvie.com/img/[email protected]
quelle