Skip to content

Say hello to the Network Graph Visualizer

Our goal here at GitHub is to break down the barriers that normally impede collaboration. One of the biggest challenges that we face as developers is keeping track of what other contributors have done. I’ve spent the last month working on GitHub’s answer to that problem and so we’re very pleased to announce the interactive GitHub Network Graph Visualizer!

Above you’ll see a screenshot of the network graph of my god repository (click it for the real deal). On the left hand side is a list of GitHub users. Across from each user is drawn a graph of commits. Since I’ve asked for the graph to be drawn with me (mojombo) as the root, every commit on every branch that I currently have in my repository (mojombo/god) will be graphed across from my name. If you look at the second user in the list (Bertg), you’ll see that only commits that appear in his repository (Bertg/god) but not mine are drawn across from him. The third user (kevinclark) has commits that appear in neither my repo nor Bertg’s repo. And so on.

When you look at the graph you are seeing every commit on every branch of every repository that belongs to a network. But you are seeing each commit only once. Let that sink in for a second. I find that many coders are so used to a centralized SCM that they miss the fact that our Graph Visualizer is actually showing and connecting disparate repositories. Git makes this possible and once it hits you, it can change everything.

Think of it like this. If I draw the graph with myself as root, then the graph shows a sort of to-do list of code that I haven’t pulled into my repo yet. When I want to catch up on what the community has been doing in their forks of my repo, I can hit up the graph and see immediately what others have been up to. If I were to pull in Bertg’s changes, the next time I see the graph, Bertg will no longer be shown at all because he will no longer have any commits that I do not. Keep thinking to-do list and you’ll understand the graph.

This method of drawing the graph may seem odd at first. If both Alice and I contribute to merb-core and at some point Alice pulls my commits into her repo, then I may not be shown on the network graph at all (if the graph ordered her before me). My commits would have already been drawn in her repo. It is important to realize that the graph is about code not ego. My code may be in my repository and yours and many others. Our individual repos are simply vehicles for introducing our code to the world. If we learn to let go of our code a little bit, we are rewarded ten-fold by what the community or our coworkers will do with that code.

You can move around the graph by clicking and dragging it with your mouse. If you click in the graph, then you can use the arrow keys or vim movement keys (hjkl). Hold down the shift key while hitting left or right and you’ll go to the beginning/end of the graph. Press t to show/hide the tag markers. Hover over a commit for details about it. Click on a commit to be taken to that commit in a new window (makes it easy to come back to the graph without losing your place). Click a username to redraw the graph with that person as the root.

Here’s a few more graphs that show some complex branching:

You can see the graph for any repo by clicking the Network tab.

GitHub on Fluid

Want to use GitHub with Fluid? We got you covered. Here’s a massive octocat for superb dock action.

New to Git? Cheat!

Learning Git is not the easiest thing in the world. There are a ton of commands, many of which have multiple personalities. What’s an aspiring hacker to do? The same thing we always do: Cheat!

The Git cheat sheet is packed with great information, and editable to boot!

If you’re a Ruby user, or have RubyGems, you can install the “cheat” gem with gem install cheat. After it completes, type cheat git any time to have the cheat sheet delivered right to your terminal. Have at.

Back to Subversion

Update, April 1st, 2010: While this post was originally made in jest, head over to Announcing SVN Support to see that it’s now reality.


You may have noticed things have slowed down around here. Sure, the site’s getting faster, but where are the new features? Well, it’s time to unveil what we’ve been secretly working on these past few weeks: SVNHub.

Yes, that’s right! Git is too new, too big of a change, and too hard to explain to my parents. We’re moving back to Subversion and all of you are coming with us.

Easily Install the FF GitHub Search

Thanks to @VxJasonxV you can now install the GitHub Firefox easy-search from any page on our site:

GitHub OpenSearch

Search away.

Search GitHub in Firefox

Do you feel a sense of longing, even loss, when away from GitHub? Ian Ownbey provides some help: a Firefox search plugin for GitHub.

Never be more than a few keystrokes away from your favorite site again!

Super Awesome Search

We just rolled out our new and improved search. It’s way better. Try out this search for git to see what I mean.

It searches across repository names, descriptions, and owner names. Try searching for josh to find all his repositories. You can also use the standard attribute:value syntax to narrow your search. Like this search for sake owner:defunkt.

Enjoy.

Check Your Usage

Hey, wondering how much disk space you’re using? Check your account page to find out. Usage is updated every time you push.

As for me, I’ve got around 30 repositories (including GitHub and FamSpam) but am only using 38 megs. Man, I love git.

Git Support for Rails Plugins

Installing a Rails plugin from GitHub is now as simple as:

./script/plugin install git://github.com/pjhyett/auto_migrations.git

Sweet! Thanks to all involved for making it happen, the changeset is here.

Now, to figure out gem support…

The Pricing Plans

Ever since announcing that public projects are free, people have been asking about our pricing plans. The moment of truth has arrived.

Details are here: http://github.com/plans

Update: We’ve added an FAQ section to our plans page. Hopefully it will clear up any confusion. Check it out.

The API

As announced on the mailing list, we just pushed out our API. The API documentation has more information.

Basically:

http://github.com/api/v1/json/defunkt/github-gem/commits/master

There’s json, xml, and yaml. You can grab a list of recent commits or a single commit. More coming soon – join the discussion if you’ve got ideas.

Markdown'd, Textile'd Readmes

Any READMEs ending in .markdown or .textile will now be displayed using the proper filter. Take Josh’s here, for instance.

Sexy.

Update: We speak RDoc now, too. Use the .rdoc extension.

Popular Repos

Edit: these features have been replaced by https://github.com/explore.

Wondering what’s hot on GitHub? Wonder no further. We just pushed out the popular forked and popular watched charts. They’ll be updated nightly with the latest and greatest.

Now that we’re gathering some juicy data you can expect things like ‘Recently Popular’ and ‘Most Active’ in the near future.

GitHub Google Group

We now have a Google Group for discussions. Use it to ask questions, talk about ideas, whatever. We’ll see you there.

http://groups.google.com/group/github/

Token Private Feeds

Apparently some of the more popular feed readers can’t handle HTTP authentication, SSL feeds, or a combination of the two. No matter! GitHub private feeds are now accessible via a private token.

Note that whenever you change your password, your token will change. This is a feature – if you’re ever worried about your token getting out there, just change your password.

The old, HTTP authenticated feeds still work without a token, too.

Update: Thanks to Mislav, the feed now validates (whoops) and works over SSL.

Something went wrong with that request. Please try again.