Frage

Für meine Schulprojekte, wurde ich verwendet, um mit mehreren Unterverzeichnissen für die spezifischen Projekte einen großen Repo zu haben. Weil ich keine Zeit hatte, habe ich immer etwas in den master Zweig verpflichtet.

Das Problem ist, dass diese Windungen aus unpraktikabel sein, da es immer schwieriger wird, ältere Commits zurückzukehren oder herauszufinden, welche begehen gehört zu dem, was whithout die Nachricht zu lesen.

Zur Zeit sieht es wie folgt aus:

Dir-Baum:

projects/
  projectA/
  projectB/
  projectC/
  ...

Repo:

A---B---C---D---E---F---G<master>

fand ich heraus, dass fast alle begehen (abgesehen von etwa fünf, die ich von Hand beheben können) nur Dateien in einem dieser Ordner ändern.

Gibt es ein einfaches (automatred?) Weg (script?), Das macht die schmerzlich Arbeit automatisch die Festschreibungen zu den Projekten zuweisen und verschiedene Zweige zu schaffen? Ich möchte am Ende so etwas haben:

Repo:

A---C---G<project A>
|\
| \
|  \
|   B---D<project B>
E---F<project C>
War es hilfreich?

Lösung

Sie suchen git filter-branch die --subdirectory-filter Option.

Erstellen von drei Zweige für die drei Projekte, die Sie wollen, und dann in diesen Zweigen laufen git filter-branch --subdirectory-filter projectX sollten Sie das gewünschte Ergebnis.

Sie können auch nur mit einem Repository pro Projekt zu betrachten. Sobald Sie die oben getan haben, neue Repositories zu machen, die jeweils einem der Zweige Sie früher als Master erstellt wird trivial sein.

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