Chaque dépôt GitHub peut avoir ( ou être ) un GitHub Pages site Web, pouvant être construit avec Jekyll. GitHub construit le site chaque fois que vous appuyez sur un nouveau commit.
Existe-t-il un moyen de forcer l’actualisation du site Web Github Pages sans imposer un nouveau commit?
Du support GitHub, 2014-06-07:
Actuellement, il n'est pas possible de déclencher manuellement une reconstruction sans envoyer un commit à la branche appropriée.
Comme Andy l'a souligné dans les commentaires, vous pouvez pousser un commit vide avec la commande:
git commit -m 'rebuild pages' --allow-empty
git Push Origin <branch-name>
J'ai eu ce problème pendant un moment, et le passage à la branche principale n'a rien changé à myapp.github.io
, pour deux raisons:
1 - Construire
Peu importe combien de fois j'ai essayé de pousser mon travail sur master, la construction ne commencerait pas. J'ai trouvé une solution de contournement en modifiant mon fichier dans l'éditeur en ligne Github (ouvrez votre fichier index.html et modifiez-le sur le site Web de Github, puis validez).
2 - Problèmes de cache
Même après une construction réussie, je verrais toujours la même page sur myapp.github.io
, et un rechargement difficile avec Ctrl + Shift + R
ne le résoudrait pas. Si vous utilisez Chrome, examinez votre page, allez dans l'onglet Application
, sélectionnez "Effacer le stockage" dans le menu de gauche, puis cliquez sur "Effacer les données du site" en bas du menu.
Même après avoir appliqué mes modifications au référentiel GitHub, je ne pouvais pas les voir aujourd'hui. Ensuite, j'ai vérifié les paramètres de mon référentiel pour plus d'informations. Là, j'ai pu constater que la génération échouait et que c'était pour cette raison que je ne pouvais pas voir les modifications.
Vous pouvez également voir un message comme suit: "Votre site rencontre des problèmes de création: Impossible de créer la page. Veuillez réessayer ultérieurement."
Ensuite, je vérifiais mes commits récents et essayais de trouver les causes de ce problème. À la fin, j'ai pu résoudre le problème.
Il y avait une virgule supplémentaire dans les balises (,) et cela a causé ce problème .
Vous ne recevrez pas de messages d'erreur pertinents s'il y a des problèmes dans votre fichier .md. Je vous recommande de vérifier l'état de la construction et de comparer les modifications si vous rencontrez le même problème.
Ceci est faisable à partir de la v3 de l'API GitHub, bien qu'il soit actuellement en version preview https://developer.github.com/v3/repos/pages/#request-a-page-build
POST /repos/:owner/:repo/pages/builds
Le commit vide ne fonctionnait pas pour moi, mais selon la réponse de @benett, cela fonctionnait pour moi:
Ouvrez Postman, créez une nouvelle demande avec l'URL suivante: https://api.github.com/repos/[user_nom///rerepo_nom/fr/pages/builds (remplacer par votre nom et le référentiel) et sélectionnez POST méthode.
Avant de l'exécuter, accédez à l'onglet headers
et ajoutez une nouvelle clé Accept
avec la valeur application/vnd.github.mister-fantastic-preview+json
Maintenant, vous pouvez l'exécuter et visiter à nouveau vos pages.
Si vous voulez une solution de script rapide, la voici. Effectuez les tâches suivantes une seule fois et exécutez le script chaque fois que vous souhaitez reconstruire votre page GitHub.
Settings > Developer settings > Personal access tokens > Generate new token
.repo
scope.Créez un fichier appelé RebuildPage.sh
et ajoutez les lignes:
#!/bin/bash
curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds -H "Accept: application/vnd.github.mister-fantastic-preview+json"
Ici,
yourname
par votre nom d'utilisateur GitHub.yourtoken
par votre jeton d'accès personnel copié.yourrepo
par le nom de votre référentiel.Si vous utilisez Windows 10:
#!/bin/bash
) du script et enregistrez-le sous le nom RebuildPage.bat
. (c'est-à-dire, remplacez .sh
par .bat
dans le nom du fichier de script)Alternative au point ci-dessus: Pour obtenir la fonctionnalité de double-clic permettant d’exécuter le fichier .sh
:
bash.exe
comme programme par défaut pour les fichiers .sh
.Ouvrez regedit.exe
et éditez HKEY_CLASSES_ROOT\Applications\bash.exe\Shell\open\command
. Définissez la valeur (Default)
sur:
"C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
Maintenant, double-cliquez sur le script lorsque vous souhaitez reconstruire votre page GitHub. Terminé!
Si vous utilisez Linux/Mac, l’exécution du script est identique à celle d’autres scripts. Terminé!
Cette solution utilise une API de prévisualisation de GitHub REST API v3. Ici est la documentation officielle de l'API.
Vous avez peut-être reçu un e-mail de GitHub vous informant que Jekyll n'a pas réussi à créer votre site lorsque vous l'avez transféré dans votre gh-pages
. Si tel est le cas, vous pouvez essayer de forcer Push pour déclencher une autre construction.
Si vous utilisez un dossier dédié pour le site Web final, disons un dossier public
, vous pouvez essayer de reconstruire votre dossier et d'ajouter le dossier à vos modifications validées. Après cela, vous devrez scinder ces fichiers dans votre branche gh-pages
et les forcer à déclencher une nouvelle construction, même si les fichiers n'ont pas changé du tout. Le reste du code ci-dessous supprime simplement les commits du dossier public
et le supprime du système de fichiers local.
git add public
git commit -am ":bug: triggering another jekyll build"
git Push Origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public
Si des modifications non validées ne font pas partie du site final, vous pouvez les stocker à l'aide de la commande suivante.
git stash
Ensuite, exécutez la commande ci-dessus pour forcer manuellement la construction de Jekyll et la désarchiver.
git stash pop