I created a repository on github and I would like to publish a blog created with hexo.
The html address of my repository is:
https://github.com/<my account name>/<my blog name>
The html address of my blog is:
https://<my account name>.github.io/<my blog name>/
I am using the plugin hexo-deployer git. I configure _config.yml like this:
deploy:
type: git
repos: git#github.com:<my account name>/<my account name>.github.io/<my blog name>.git
branch: master
message: "{{ now('YYYY-MM-DD HH:mm:ss') }}"
But that doesn't work !
INFO Deploying: git
You have to configure the deployment settings in _config.yml first!
What is wrong in my syntax ?
Thank you by advance,
If not answering late ...
Most of the articles on the internet on this topic (deploying a Hexo blog) suggest deploying with hexo-deployer plugin, either to master branch, or gh-pages branch.
But, with GitHub Pages there is a much simpler way, that doesn't require hexo-deployer plugin, and not even having other Git branches (other than master branch).
In your blog-level _config.yml file, set the public_dir: docs. This means that when you generate your blog content, it will be placed in the docs folder (on the master branch). Simply push the code to GitHub.
Now, you need to tell GitHub Pages server where your blog content to read from. In the GitHub repository, go to the Settings tab, and scroll down to the GitHub Pages section. As the Source, select the option: master branch /docs folder
You can find a more thorough explanation on this process here
Related
I've been able to publish GitHub sites under my domain on GitHub Pages from the master branch without issue, however in the docs it says to use a gh-pages branch or master/docs for publishing projects.
I also have a repository for my homepage index.html file/assets, where I link to each of the published GitHub repositories (which are published to my domain name.com/repo-name).
Why have I been able to publish from the master branch? Is there any reason to publish from the gh-pages branch or master/docs instead for publishing project repositories?
GitHub Pages can publish from any of those sources: gh-pages branch, master/docs, or just from the repo itself. It's more of a preference which route you use.
For example, Jekyll is publishing using the master/docs option. The rest of the repo outside of the docs folder is for the actual Jekyll code. One possible reason is that PR's with new features must also include documentation of that new feature. Otherwise, it won't get merged.
The gh-pages option means that code and documentation can be paced or managed differently. They live in the same repo, but the branches can grow at differing speeds.
In terms of technical differences, there's no technical costs/benefits to each option as far as I know. It's just how you want to organize your code and documentation.
Hope that helps!
GitHub requires user and organization sites to build from master, while project sites can build from gh-pages. If I understand correctly, you are publishing to your user site, i.e. yourusername.github.io.
I have GitHub site like example.github.io and want to load this site from the gh-pages branch!
how can I do?
now I can't change branch because my repository name is example.github.io
When you create yourusername.github.io you have to commit directly to master. It's meant as a website (unlike a repo that has a website that hosts to yourusername.github.io/reponame/*.
Since you already have a branch with the website, just merge it into the master branch. This can be done from the command line, the Github website or Github Desktop.
The logic
Example: You have a repo (username.github.io). You also have two repos set up with Github pages: repo-1 and repo-2.
username.github.io is the root. You're free to do pretty much anything you want with it. Creating directories will be relative to the root of the domain. When you connect to the domain, it finds the files from the master branch. If you go into the repo settings for username.github.io, you'll see this:
You're locked to the master branch. You can still use other branches for adding features, but what the actual website consists of is what's on the master branch.
The difference between the username.github.io repo and repo-1 or repo-2 is that username.github.io allows editing access to the directory root (e.g. http(s)://username.github.io/index.html) where as repo-1 and its connected pages would be at http(s)://username.github.io/reponame/index. Since the website is most likely wanted to stay out of the source itself, you can use an alternate branch to host it.
If you go into settings for repo-1 or repo-2, you'll see this:
Here you can pick. If you have multiple branches, you can select a different one to host the pages. You can also select the option to use the /docs folder for the website.
TL:DR; When using username.github.io, the master branch is the one that actually hosts the website. Think of it as the production branch. The others can't be accessed from the website
From the OP's comment:
So I can't use the gh-pages branch for Github site! yes?
Update Sept. 2020: yes, you now can.
You can use any branch you want.
"Build and deploy GitHub Pages from any branch"
Repositories that use GitHub Pages can now build and deploy from any branch.
Publishing to the special gh-pages branch will still work the same as it always has, but you can now choose a different branch in your repository as the publishing source.
This functionality also removes the hardcoded dependency on user and organization pages having a master branch.
If I remove/delete a public repository on gitHub, will it remove all of its clones as well? Secondly I want to share my gaming portfolio on github pages is there any way of doing that without having my repositorys cloned?
If you delete the repo from the GH site, it won't remove any clones created on local machines. It will delete everything on the site repository. You can configure GitHub Pages to publish your site's source files from any of these branches: master, gh-pages, or a /docs folder on your master branch. I'd check out this article, since it explains the details.
I am learning how to use jekyll and would love it if someone could explain how to set it up so that whenever I commit the jekyll files to the gh-pages branch, the site would be automatically generated.
Thank you
Reading the documentation pointed by #thirtythreeforty's comment
For User Pages, use the master branch in your username.github.io repository. For Project Pages, use the gh-pages branch in your project's repository.
if your repository is at github.com/userName/userName.github.io it's your user repo -> publish to master
any other repository like github.com/userName/projectName is a project repository -> publish to gh-pages
So, be sure to commit in the right branch.
If the problem is elsewhere you can give your repository url for further investigation.
I recently played around with the Jekyll/Poole/Lanyon theme for a new blog. At first, I linked my domain jonathancharleslee.com to my github pages site at jonathancharleslee.github.io
When I update files locally, I can update site features and posts - however, when I push to github it won't update on jonathancharleslee.github.io
Any help is much appreciated.
You're on a user/organisation repository (username.github.io). This type of repository needs you to push in master branch, not in gh-pages.
See Github Pages doc
You should be working and making all your changes on the development branch, then pushing ONLY your built files to the master branch, which is what Github Pages will publish.
There's step-by-step instructions on how to do this in this posting:
https://stackoverflow.com/a/44296933/7669275