2009-08-11 6 views
5

Je me demande si c'est possible.Forking privé git repo dans github.com

J'ai un "projet de démarrage" dans github (dépôt privé). Ce que j'aime faire, c'est créer un repo de customerA (également privé) mais il devrait être forké du "projet starter". Mon idée est que le client B, le client C, pourrait avoir son propre repo privé et si je corrige un bug qui est générique dans le "projet starter", je peux ensuite apporter le correctif à tous mes clients facilement.

Je n'ai pas trouvé de toute façon pour résoudre ce problème. Actuellement, j'ai résolu ce problème en clonant le projet privé de sampe. Est-ce un problème git ou github.com?

un travail autour?

+0

+1 à @jrockway – memmons

Répondre

7

Voici à quoi servent les branches. Chaque client obtient une branche, problème résolu. Mais ... si le dépôt de chaque client est dans un compte séparé, vous pouvez simplement utiliser les outils git habituels pour partager les modifications. A titre d'exemple:

$ git clone [email protected]:client/your-project 
$ cd your-project 
$ git remote add original [email protected]:you/your-project 
$ git fetch original 
$ git cherry-pick <change from original> 
$ git merge <whatever> 
$ git rebase <whatever> 
$ git push origin 

etc.

interface utilisateur Web de Github est juste une commodité pour les cas les plus courants. Si vous avez besoin de faire quelque chose de rare, utilisez simplement vos outils git habituels. Github s'en fout.

+0

Dans un cas comme celui-ci, que se passe-t-il si vous modifiez un fichier sur le maître personnalisé dans la branche? Si vous synchronisez à partir du maître, est-ce que ce qui précède remplace les changements au niveau de la branche? –

3

Pour Git, le clonage est le même que le forking, ou pour être plus précis: Git ne sait pas forking, c'est une chose github. Techniquement, toutes les fourches sont simplement des clones avec des propriétaires différents. Par conséquent, si vous clonez votre projet de démarrage pour trois clients, vous disposez en réalité d'un référentiel unique avec plusieurs branches car chaque branche est une branche. Peut-être devriez-vous envisager d'utiliser des sous-modules pour votre projet de démarrage et l'inclure dans chaque référentiel client?

Questions connexes