Actuellement en cours de traitement d'un projet. Nous voulons open-source nos commits au jour le jour avec des informations complètes (auteur, etc ...) tout en filtrant certains dossiers privés spécifiques. Supposons que je valide A/file1 et B/file2 dans le maître de branche, je voudrais le mettre en miroir sur GitHub avec le dossier B filtré (ce commit aurait uniquement A/file1).git mise en miroir de GitHub et filtrage de fichiers privés
Une façon je pensais le faire est un crochet de mise à jour à distance qui:
- Liste toute nouvelle engage ajoutée par newref (disons lastfoundcommit..newref)
- Modifier les commits un par un (de lastfoundcommit à newref) pour supprimer les fichiers indésirables
- Dans le processus, il pourrait créer une branche maîtresse filtrée locale (si elle aide à avoir localement)
- Pousser cette branche dépôt public
- garder une certaine façon une mise en correspondance de commettre ID entre commits publics et privés, pour calculer facilement « lastfoundcommit » sur la prochaine poussée
Idéalement, il pourrait aller à la fois chemin (elle serait bien si nous pouvions aussi réimporter branches GitHub et tirer des requêtes et les faire "rebaser" sur notre dépôt privé, soit automatiquement ou avec un processus simple - probablement pas si dur que c'est probablement juste un rebase).
Ceci est quelque peu similaire à ce que git-subtree peut faire, sauf qu'il ne s'agit pas d'extraire un sous-répertoire mais de filtrer divers fichiers à la place.
Est-ce que cela semble faisable? Ou toute autre suggestion? (peut-être basé sur git filter-branch? ou tout autre outil/script existant qui pourrait m'aider?)
Note: sous-module n'est pas une option viable, car ils pourraient être rares et il serait trop encombrer. En outre, la liste des fichiers "privés" peut s'étendre/changer avec le temps.