2012-04-01 9 views
5

Persönlich, wenn ich auf den Git oder den Linux-Repo mit Gitk schaue, bin ich völlig überwältigt von der riesigen Menge an Zusammenführungen/verzweigt. Ich habe absolut keine Ahnung was vor sich geht.Git: Wie können Git/Linux-Betreuer so viele Zweige pflegen

Ich nahm an, dass Sie im Allgemeinen versuchen, eine möglichst lineare Geschichte und nur ein paar Zweige (z. B. Master, Wartung, nächste, PU - das ist es) in der öffentlichen Repo haben. I.e. Ich ging davon aus, dass Merges selten und meistens Rebase verwendet wird. Anscheinend liege ich falsch.

  1. Ich frage mich, was die git/Linux-Maintainer einen guten einfachen Überblick zu tun hat
  2. Warum sie häufiger nicht rebase verwenden und haben viel mehr Filialen als nur Meister, maint, nächsten pu?
+0

Branchen sind billig, so dass sie oft ausgenutzt werden :) – Nic

+0

Im Jahr 2007 [Google Tech Talk] (https://www.youtube.com/watch?v=4XpnKHJAok8) Linus Torvalds gibt einige Beispiele, wie er git verwendet insbesondere auf Kernel und Git selbst. – andrybak

Antwort

3

Es gibt eine sehr wichtige Sache in Bezug auf Git und Rebase zu verstehen.

Do not rebase commits that you have pushed to a public repository. 

Während der Zeit, die Sie auf einer Zusammenführung arbeiten lokal können Sie so viel oft rebase verwenden, wie Sie wollen, weil es lokal ist. Wenn Sie eine lineare histroy mögen. Mit anderen Worten, Sie werden nicht sehen, dass die Rebase funktioniert.

Der andere Teil über die Anzahl der Zweige ist einfach eine Art von Erfahrung und mehr als das eine Frage des Konzepts. Ich habe mit über 300 Filialen parallel verzweigt. Das ist nur eine Art, die das Biest durch Konventionen und ein gutes Konzept zähmt.

2

Ich bin kein Kernel-Entwickler, und kann sicherlich nicht für sie sprechen. Here's eine Referenz, wo Linus darüber gesprochen hat, dass ich glaube, dass er Ihre Fragen beantwortet. Ich werde hinzufügen, dass mit vielen zufällige Niederlassungen ist verwirrend, aber imposante eine kleine Reihenfolge auf es macht es einfacher zu Filialen IMHO haben. (Beispiele für die Reihenfolge könnten Themenzweige wie topic/short_name benennen, einschließlich aussagekräftiger Commit-Nachrichten, Entwickler halten einige externe Dokumentation und tatsächlich miteinander reden oder was auch immer für Ihre Umgebung geeignet ist.)

Ich werde auch eine Referenz enthalten this Workflow, da es praktisch erforderlich ist Git lesen, und gilt für Ihre Frage.

+0

+1 für den Link zu diesem Git-Workflow. Das ist einzigartig die beste Git Erklärung, die ich gesehen habe. –

0

Denken Sie daran, dass, wenn Sie ein Git-Repo klonen, können Sie alle entfernten Niederlassungen, aber Sie nur erstellen und Kasse ein Filiale (in der Regel master, Tracking remotes/origin/master)

(Dies ist, warum Sie Fragen wie „Track all remote git branches as local branches“)

zu Ihrem Thema von Interesse abhängig, würden Sie nur eine bestimmte Filiale Kasse und verfolgen, einige Arbeit, und rebase regelmäßig Ihre lokale Niederlassung auf den origin/branch Ihre Arbeit zu halten up-to Datum.

Sie werden nicht von den offiziellen öffentlichen Zweigniederlassungen zu Ihrer Zweigstelle zusammengeführt: das wäre ein Back-Merge, und sie sollten vermieden werden, wie in "What is the right git workflow with shared feature branches?" veranschaulicht.

0

Auschecken Greg K-H Ask a kernel developer Spalte: Er erklärt seinen Workflow im Detail. Greg war der Maintainer des Stallzweiges; Er ist der derzeitige Betreuer für viele Subsysteme, einschließlich USB.