2009-09-15 7 views
1

Voici une expérience intéressante avec l'utilisation de Git. Pensez à la fonctionnalité 'pages' de Github: j'écris un programme dans une branche (par exemple master), et un site Web de documentation est conservé dans une autre branche entièrement indépendante (par exemple gh-pages).Expérience de branche Git

Je peux générer de la documentation au format HTML à partir du code de ma succursale master, mais je souhaite publier ceci dans le cadre de mon site Web de documentation dans la branche gh-pages.

Comment puis-je générer intelligemment mes documents à partir de mon code au master, le déplacer vers ma branche gh-pages et y apporter les modifications? Dois-je utiliser un hook post-commit ou quelque chose? Serait-ce une bonne idée, ou est-ce complètement idiot?

+0

Je pense que cela peut être lié: http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories – Eimantas

+0

@Eimantas: Pas vraiment, je pense. Cela concerne environ deux branches dans le même référentiel, et non deux référentiels différents. – avdgaag

+0

un crochet de pré-tag pourrait être fait, afin de générer la documentation et de publier si sur la branche, avant de revenir à master et appliquer la balise. Mais je ne suis pas assez familier avec les crochets pour voir exactement comment le faire. – VonC

Répondre

1

Quel serait l'avantage d'avoir généré des fichiers sous le contrôle de version? Et si vous insistez sur ce point, quel serait l'avantage d'avoir généré et généré des fichiers dans le même référentiel? Le support de branchement de git est fantastique, mais je suis sûr qu'il n'a pas été conçu pour faire ce que vous essayez de faire.

+0

Je suis d'accord, puisque cette branche de 'gh-pages' est en fait un projet séparé, pas vraiment une branche de la base de code principale. Ce serait un hack. Pourtant, je suis curieux de savoir si cela peut être fait. – avdgaag

+0

Le dépôt Git de Git lui-même fait exactement cela (pour les pages de manuel et d'autres choses), donc s'ils le font, il doit avoir raison! :) – Bombe

2

Vous pouvez 'git stash' vos fichiers générés et appliquer ensuite sur la branche concernée

git checkout master 
#generate doc 
git stash save 
git checkout gh-pages 
git stash pop 

Mise à jour Août 2016: Simpler GitHub Pages publishing permet maintenant de conserver vos fichiers de page dans un sous-dossier de la même branche (pas plus gh-pages nécessaire):

Now you can select a source in your repository settings and GitHub Pages will look for your content there.

Vous pouvez maintenant garder votre doc à jour avec votre code dans un sous-dossier de la même branche.

+1

Je n'avais pas encore pensé à des cachettes, ça a l'air bien. Serait-il possible de l'automatiser, par exemple un crochet qui s'exécute avant que je ne crée une étiquette ou quelque chose? – avdgaag

Questions connexes