web-dev-qa-db-fra.com

branche git: gh-pages

J'ai un repo sur GitHub. Récemment, j'ai découvert les pages de GitHub et je souhaite les utiliser.
J'aimerais créer cette nouvelle branche, puis, lorsque j'en ai besoin, commettre sur une branche master ou sur une branche gh-pages

Comment puis-je faire ceci? Dois-je créer un autre dossier dans mon dépôt?

52
rubik

Vous pourriez trouver ce tutoriel utile: 

Configurer les branches "gh-pages" et "master" de GitHub Pages en tant que sous-dossiers d’un dossier de projet parent ("grandmaster") .

Pour moi, cette approche semble plus simple que de faire un git checkout gh-pages à chaque fois que vous souhaitez modifier le contenu de votre gh-pages. Faites-moi savoir ce que vous pensez ^ _ ^

Edit: J'ai mis à jour le lien du tutoriel - merci @Cawas. L'ancien tuotial (non recommandé) était https://Gist.github.com/825950

26
Chris Jacob

Les versions les plus récentes de git proposent une alternative à la méthode git symbolic-ref décrite par Chandru. Cela évite d'avoir à utiliser les commandes de niveau inférieur.

git checkout --Orphan gh-pages
git rm -rf .
34
Arrowmaster

Sur votre clone local,

git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index 
git clean -fdx

Ensuite, git checkout gh-pages et écrivez vos pages. git Push Origin gh-pages lorsque vous êtes prêt à publier les pages.

7
Chandra Sekar S

Publiez un site statique comme ceci:

git subtree Push --prefix www Origin gh-pages

www est le répertoire racine du doc ​​dans lequel se trouvent vos fichiers statiques . Votre site statique est maintenant actif à l'adresse suivante: https://[user_name].github.io/[repo_name]/

2
Jonas Ellehauge

Création manuelle de pages de projet

L'ajout manuel d'un nouvel ensemble de pages pour un projet est simple processus si vous êtes habitué à utiliser git en ligne de commande.

https://help.github.com/articles/creating-project-pages-manually

1
mockee

Il existe une autre solution à votre problème: oubliez gh-pages et les branches; Placez vos fichiers statiques censés être servis dans le répertoire /docs, puis accédez aux paramètres de votre projet et demandez à github de servir le contenu /docs

Pour plus d'informations, jetez un coup d'œil à this

1
Rsh

Le moyen typique est de changer de branche: git checkout master si vous voulez travailler sur le maître et git checkout gh-pages si vous voulez travailler sur gh-pages.

À partir de git 2.5, vous pouvez extraire les deux branches en même temps (dans des répertoires différents). Voir https://github.com/blog/2042-git-2-5-including-multiple-worktrees-and-triangular- workflows . Configuration via git worktree add -b gh-pages ../gh-pages Origin/gh-pages.

Bonus: Si le contenu d'un sous-répertoire de votre master caisse correspond au contenu de gh-pages, utilisez le script fourni à l'adresse https://github.com/X1011/git-directory-deploy .

0
koppor

Est-ce que vos gh-pages et votre branche maîtresse ont EXACTEMENT la même structure de dossiers? Si tel est le cas, pourquoi voulez-vous même avoir deux branches? maintenez juste une branche de gh-pages! mais si, pour une raison quelconque, vous souhaitez que les deux branches soient constamment synchronisées, le mieux est d’utiliser git rebase. Vois ici: 
http://lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/

Vous pouvez également sélectionner uniquement les fichiers dont vous avez besoin dans master et les placer sur gh-pages en utilisant un cas d'utilisation spécial de git checkout. Vois ici: 
http://oli.jp/2011/github-pages-workflow/#gh-pages-workflow
http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/

Ayant eu à faire face au même problème, je me suis rendu compte que gh-pages finirait généralement par avoir une base de code différente de celle du maître. En d'autres termes, gh-pages ne devrait inclure que le contenu du dossier dist/build/publish de votre projet, tandis que maître inclura vos fichiers de configuration, vos scripts et styles non terminés, etc. 

Ma suggestion serait de créer gh-pages en tant que branche --Orphan et d'y inclure uniquement le matériel prêt à être publié. Vous devez cloner votre maître dans un répertoire local différent, utiliser git checkout --Orphan gh-pages pour créer gh-pages, puis supprimer tous les fichiers inutiles à l'aide de git rm -rf .. À partir de là, vous pouvez continuer et appuyer sur gh-pages après avoir ajouté vos fichiers de publication seulement . Reportez-vous à la documentation Github pour plus d'informations: 
https://help.github.com/articles/creating-project-pages-manually/

Bonne chance

0
Saba Ahang