Skip to content

Instantly share code, notes, and snippets.

@joshuajabbour
Created January 22, 2014 23:10
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save joshuajabbour/8569364 to your computer and use it in GitHub Desktop.
Save joshuajabbour/8569364 to your computer and use it in GitHub Desktop.
Store and edit GitHub wikis within the main project repository.

Project documentation

The project documentation (stored in the docs directory) is a git subtree of the project wiki. This allows for the documentation to be referenced and edited from within the main project.

Initial local setup

When cloning the main project repository for the first time, the wiki repository must be added as a remote.

git remote add wiki https://github.com/<user>/<repo>.wiki.git

Adding documentation

New and updated documentation should be committed and pushed in the main project repository just like any other file.

However, care should be taken to ensure documentation files are always committed separately from other project files. Individual commits should never contain both files inside and outside the docs directory.

Pushing updates to the wiki

Documentation changes in the main project repository can be pushed to the wiki repository at any time. This does not need to happen every time documentation is added or updated, but can happen as often as desired.

git subtree push --prefix docs wiki master

If the GitHub website is used to edit wiki files, the push will fail, in which case any updates should be pulled as described below.

Pulling updates from the wiki

It should only be necessary to pull updates directly from the wiki when the GitHub website is used to edit the documentation directly in the wiki. If pushing to the wiki ever fails, try pulling first.

git subtree pull --prefix docs wiki master --squash --message="Merge wiki updates into docs."
@kahopkin
Copy link

We are trying to set this up and keep getting errors. Could you please help and provide steps on how to set up the docs folder to be a git subtree inside of the main project repo?
I keep getting the following error: failed to push some refs to 'https://github.com/kahopkin/MainRepo.wiki.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart.
I tried to find any docs or resources to help me get through and be able to push from the docs folder to the wiki.git, but so far no success.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment