I have a folder in my
So if your
public content was in its own orphan branch (like
gh-pages content is usually kept in its own orphan branch), then you could:
publicas a submodule of your main repo in
So any modification that you make in submodule
public when you are in
master branch can be updated (
git submodule update) once you switch to
I am not saying this is a solution for your current setup, because it involves removing
public from your main content, and adding it back in its own branch (ie, the other solutions might be more straightforward), but it is an interesting way to share a common directory:
cd yourRepo git symbolic-ref HEAD refs/heads/public rm .git/index mv public .. git clean -fdx mv ../public/* . git add . git commit -m "public content in orphan branch public" git push origin public
But once you have created an orphan branch to include that (
public) content, the trick to add that branch content as a submodule for other branch is:
$ git checkout master $ git submodule add -b public email@example.com:user/repo.git public $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: .gitmodules # new file: public # $ git commit -m "added public as submodule" $ git push
And you can repeat that step for your
That will create a directory "
public", present both when you checkout
In both cases (both checkout), a
git submodule update will be enough to get back the latest evolutions done on
And as usual when it comes to submodules, once you do modifications in
public directory, make sure you are on its '
public' branch, commit and push, then go back one directory above, and add-commit again.
Update August 2016: Simpler GitHub Pages publishing now allows to keep your page files in a subfolder of the same branch (no more
So the submodule trick is no longer necessary to make both type of content visible through the same branch.