1

I`m planning a project, and was wondering if it would be a good idea to use GitHub as a code repository for the project.

The project is just me creating a single application step by step. In fact, it is more like me learning how to do it, and documenting my process, and letting other people tag along.

So step 1 could be setting up the project, step 2 how to organize the files, step 2 connecting to the database, step 3 how to do the UI etc. (btw. this is not how the project is set up)

The documentation would consist of a website with articles for each step and along with each step I want to enable the visitor to download/view the code for the project to the point where we are in the process.

I don`t know how top use GitHub, but I was planning on learning it as well. Would GitHub be a good way to share the code for a project like this?

Is there a way in GitHub to take snapshots, like step 1, step 2, etc., or would it be better to use branches or forks for this?

A nice feature would be the ability to correct the entire chain of steps if I find a typo in step one.

Does anyone know of an existing GitHub project that is set up in a similar way?

Thomas
  • 113
  • 2
  • 5

1 Answers1

1

You could use GitHub, provided you push also tags for each significant steps.
(as explained in "How do I use github tags to create downloads for my project?")

That way, you can provide download links for each of those tags, even for the readers who don't have Git installed.

See "All of your downloads. One big button."

downlaods

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Will the use of tags enable me to do edits in step 1 later on in the project and cascade the edits to the other steps? – Thomas Dec 09 '12 at 14:38
  • @user1182478 no, that would be branches, that would would start, conveniently enough, from your tag. And with GitHub, you can *also* download a branch HEAD too, without Git locally installed (http://stackoverflow.com/questions/6978954/add-binary-distribution-to-githubs-download-link/6978988#6978988). – VonC Dec 09 '12 at 14:59
  • @user1182478 As I explain in http://stackoverflow.com/questions/13753703/should-a-release-candidate-be-immutable/13753753#13753753, tags are immutable and reference a fixed point in history (which can be the starting point of each step evolution). Branches are for mutable history. – VonC Dec 09 '12 at 15:00
  • @user1182478 once you manage those branches, fix a bug in stepn would involve rebasing all the other subsequent one: stepn+1 on top of stepn, stepn+2 on top of (new because rebased) stepn+1, etc. I prefer that to the classic cherry-picking (illustrated in http://technosophos.com/content/git-cherry-picking-move-small-code-patches-across-branches) – VonC Dec 09 '12 at 15:11