views:

63

answers:

3

Hey Guys!

I am working in a small startup organization with approximately 12 - 15 developers. We recently had an issue with one of our servers where by the entire server was "Re provisioned" i.e. completely wiped of all the code, databases, and information on it. Our hosting company informed us that only someone with access to the server account could have done something like this - and we believe that it may have been a disgruntled employee (we have recently had to downsize). We had local backups of some of the data but are still trying to recover from the data loss.

My question is this - we have recently began using GitHub to manage source control on some of our other projects - and have more then a few private repositories - is there any way to ensure that there is some sort of protection of our source code? What i mean by this is that I am aware that you can delete an entire Project on GitHub, or even a series of code updates. I would like to avoid this from happening.

What i would like to do is create (perhaps in a separate repository) a complete replica of the project on Git - and ensure that only a single individual has access to this replicated project. That way if the original project is corrupted or destroyed for any reason we can restore where we were (with history intact) from the backup repository.

Is this possible? What is the best way to do this? Github has recently introduced "Company" accounts... is that the way to go?

Any help on this situation would be greatly appreciated.

Cheers!

+1  A: 

Git is a distributed system. So your local copy is the same as your remote copy on Git hub! You should be OK to push it back up there.

Rimian
+1  A: 

First, you should really consult github support -- only they can tell you how they do the backup, what options for permission control they have (esp. now that they introduced "organizations") etc. Also you have agreement with them -- do read it.

Second, it's still very easy to do git fetch by cron, say, once an hour (on your local machine or on your server) -- and you're pretty safe.

Roman Cheplyaka
Thats perfect - we will be using git fetch so as to implement a secondary - local backup so that we know that there is always something in house to restore to...
Salman
+1  A: 

Well, if a disgruntled employee leaves, you can easily remove them from all your repositories, especially if you are using the Organizations - you just remove them from a team. In the event that someone deletes a repository maliciously that still had access for some reason, we have daily backups of all of the repositories that we will reconstitute if you ask. So you would never lose more than one day of code work at worst. Likely someone on the team will have an update with that code anyhow. If you need more protection than that, then yes, you can setup a cron'd fetch or something that will do mirrors of your code more often.

Scott Chacon
Thank you so much for this answer... knowing that GitHub does daily backup of the repository is quite helpful - are you a GitHub employee? We will also be implementing a daily cron fetch as a level of secondary backup locally.
Salman
I do work at GitHub, yes.
Scott Chacon