What's the difference between say:
"The project will be on GitHub",
"The project will be in GitHub" and
"The project will be at GitHub"?
Host and manage your code on GitHub.
I can't think of a specific rule for it, but on feels right to me. In English, we generally seem to use on for things that use a method of broadcast or distribution. Something can be on the air, which might mean that it's on TV or on the radio; we might see an interview on the nightly news, or news might arrive on the wire. (This is not the only way we use on, of course, but I'm only discussing communication right now.)
In seems to be used more for means of communication that something could literally be inside of: you might read something in a book or a newspaper, or a fact could be found in a report.
At is used more for locations, addresses, or time: at the press conference, or at nine o'clock. We would say that the code is at http://github.com/blahblahblah to specify an exact address. (Credit to @Sarah for pointing that out!)
Most references use on GitHub.
Maybe because things are usually said to be on a server and GitHub repositories are kept on server farms. Repositories on GitHub get cloned (downloaded), and then modifications get pushed back to GitHub.
These days, at gets used more for email addresses as in me(at)gmail.com to avoid robot scraping, and URLs: "enroll at open_university.org".
GitHub is not an enclosure, per se, so in may not be appropriate when speaking of the platform. In does get used when referring to a specific repository:
Additional examples can be found in the interesting_project/doc repo on GitHub.
(in a specific repository, on GitHub)
When talking about saving digital content, the usual metaphor is on. Data is hosted on Github, it is saved on your hard disk, you can save it on a flash drive etc.
Same goes for hosting. Web pages are hosted on a server.
When we refer to the actual container, we usually use in. Data is stored on the hard drive, but in a file in the file system.
When you code is hosted on Github, it is actually in a git repository. But that git repository is hosted on GitHub, so by extension, the code is hosted on GitHub.
At usually means something else. You could say "You can find my project at GitHub". That means you can find the project by visiting GitHub, and you find it listed there. But that does not say anything about the storage location. You can find a link to something else at any website, but that does not mean it is on the same website.
The choice of In, On, or At is a personal one because it depends upon your understanding of what the GitHub service does for you. In my opinion, for clear communication regarding a service, it is often best to align your view of that service with the calls to action you see a service provider using when they discuss their service. I will use calls to action to describe how In, On, and At can be used.
GitHub sees themselves as a platform for software development, so they're going to implore you to host your software development project there. GitHub will be an active host. You are encouraged to build your software atop what GitHub provides; you build on the GitHub platform.
on can also be used to denote a place where work gets done. This makes on a very strong choice for calls to action since one's work is often highly valued in western culture. "Fork me on GitHub!"
If GitHub saw themselves as a data storage container with little/no additional value added like Amazon S3 cloud storage, then in might have been more appropriate. in implies the value lies primarily in what you are storing rather than the service or platform that provides the storage. An offer of trust and security often comes along with in, banking comes to mind. "Store your pictures in GitHub!"
I'd probably choose "with" instead of "in" in calls to action because with indicates a partnership. with should help boost sales in the otherwise boring case of web-based file storage, for example. "Store your pictures with GitHub!"
If GitHub saw themselves primarily as a user destination on the web like for developer events or teaching seminars, at might have been used. Time, location and your presence go along with at.
If your data stored at GitHub were somehow a proxy for you, say a ticket reservation system, then at would be the perfect choice. "Reserve your tickets at GitHub!"
In many cases where a preposition does not relate to a literal physical relation ("the cat is on the mat", "the soup is in the bowl") there's little logical reason why one is often favoured over the other, and the preferred use is more a matter of convention and tradition than anything else.
Since source hosting services are relatively new, there hasn't been much time for any such tradition to build up, so it comes down to metaphors.
At metaphorically considers GitHub to be a location. This is a reasonable metaphor often used of websites, and so a reasonable use.
In metaphorically considers GitHub to be a container. This is a reasonable metaphor often used of data storage, and so a reasonable use.
That storage metaphor is also often used with on. As well as that, on can metaphorically consider GitHub to be a platform. This is a reasonable metaphor for online services that while not as clear as the other two, is growing in popularity, and so a reasonable use.
As such all three could be reasonably used. That on is favoured by GitHub and many of its users, and that the platform metaphor is also favoured by them, makes it the one to go for.
"On" is because GitHub is a platform and the metaphor extends to what's "on" that platform.
"The project is on GitHub."
"At" would be more appropriate for the metaphor of a [web]site.
"You can find this information at www.infosite.com."
"By" would be more appropriate if the focus was on GitHub as an organization/company.
"My website is hosted by GreenHost."
"In" would be appropriate if the metaphor was that of a storage container/vault, which is actually used for an individual "repository."
"In this repository, we see X, while in that repository, we see Y."
However, since the dominant metaphor for GitHub (as well as Facebook etc.) is that of a "platform," the preposition is "on."